未验证 提交 ab2a43a4 编写于 作者: C Chengmo 提交者: GitHub

add tdm_demo (#4546)

* add tdm_demo
上级 6c87d487
# Paddle-TDM
本代码库提供了基于PaddlePaddle实现的TDM召回算法,主要包含以下组成:
- 基于fake数据集,适用于快速调试的paddle-tdm-demo模型。主要用于理解paddle-tdm的设计原理,高效上手设计适合您的使用场景的模型。
- 基于User-Behavier数据集,复现TDM原始论文的paddle-tdm-dnn模型。
- 基于User-Behavier数据集,复现TDM原始论文的paddle-tdm-attention模型。
- 基于User-Behavier数据集,实现JTM原始论文设计思想的paddle-jtm模型。
- Paddle-TDM-Serving,快速部署paddle-tdm模型,实现高效检索。
以上内容将随paddle版本迭代不断更新,欢迎您关注该代码库。
#
## 设计思路
### 基本概念
TDM是为大规模推荐系统设计的、能承载任意先进模型来高效检索用户兴趣的推荐算法解决方案。TDM基于树结构,提出了一套对用户兴趣度量进行层次化建模与检索的方法论,使得系统能直接利高级深度学习模型在全库范围内检索用户兴趣。其基本原理是使用树结构对全库item进行索引,然后训练深度模型以支持树上的逐层检索,从而将大规模推荐中全库检索的复杂度由O(n)(n为所有item的量级)下降至O(log n)。
### 核心问题
1. 如何构建树结构?
2. 如何基于树结构做深度学习模型的训练?
3. 如何基于树及模型进行高效检索?
### PaddlePaddle的TDM方案
1. 树结构的数据,来源于各个业务的实际场景,构造方式各有不同,paddle-TDM一期暂不提供统一的树的构造流程,但会统一树构造好之后,输入paddle网络的数据组织形式。业务方可以使用任意工具构造自己的树,生成指定的数据格式,参与tdm网络训练。
2. 网络训练中,有三个核心问题:
- 如何组网?答:paddle封装了大量的深度学习OP,用户可以根据需求设计自己的网络结构。
- 训练数据如何组织?答:tdm的训练数据主要为:`user/query emb``item`的正样本,`item`需要映射到树的某个叶子节点。用户只需准备符合该构成的数据即可。负样本的生成,会基于用户提供的树结构,以及paddle提供的`tdm-sampler op`完成高效的负采样,并自动添加相应的label,参与tdm中深度学习模型的训练。
- 大规模的数据与模型训练如何实现?答:基于paddle优秀的大规模参数服务器分布式能力,可以实现高效的分布式训练。基于paddle-fleet api,学习门槛极低,且可以灵活的支持增量训练,流式训练等业务需求。
3. 训练好模型后,可以基于paddle,将检索与打分等流程都融入paddle的组网中,生成inference_model与参数文件,基于PaddlePaddle的预测库或者PaddleLite进行快速部署与高效检索。
#
\ No newline at end of file
# Paddle-TDM-DEMO
本代码仅作tdm组网示例,使用fake数据集,用于快速调研paddle-tdm。
* [运行环境要求](#运行环境要求)
* [树结构的准备](#树结构的准备)
* [名词概念](#名词概念)
* [树的准备流程](#树的准备流程)
* [Layer_list](#layer_list)
* [Travel_list](#travel_list)
* [Tree_Info](#tree_info)
* [Tree_Embedding](#tree_embedding)
* [数据准备](#数据准备)
* [TDM网络设计](#tdm网络设计)
* [TDM组网细节](#tdm组网细节)
* [训练组网](#训练组网)
* [输入的定义](#输入的定义)
* [输入侧的组网](#输入侧的组网)
* [node的负采样组网](#node的负采样组网)
* [input与node的交互网络](#input与node的交互网络)
* [判别及loss计算组网](#判别及loss计算组网)
* [预测组网](#预测组网)
* [网络输入](#网络输入)
* [通过各层分类器的流程](#通过各层分类器的流程)
* [TDM-Demo运行细节](#tdm-demo运行细节)
* [运行流程](#运行流程)
* [模型的加载与保存](#模型的加载与保存)
* [demo的训练运行方法](#demo的训练运行方法)
* [demo的预测运行方法](#demo的预测运行方法)
* [demo分布式运行方法](#demo分布式运行方法)
* [demo的部署及推理](#demo的部署及推理)
## 运行环境要求
- 目前仅支持Linux,如:`unbuntu``CentOS`
- 目前仅支持python版本`2.7`
- 请确保您的paddle版本高于`1.7.2`,可以利用pip升级您的paddle版本
## 树结构的准备
### 名词概念
为防止概念混淆,让我们明确tdm中名词的概念:
<p align="center">
<img align="center" src="img/demo_tree.png">
<p>
- **item**:具有实际物理含义,是我们希望通过tdm检索最后得到的结果,如一个商品,一篇文章,一个关键词等等,在tdm模型中,item位于树的叶子节点。item有其自身的ID,我们姑且称之为 `item_id`
- **节点(node)**:tdm树的任意节点。我们完成聚类后,会生成一颗树,树的叶子节点对应着item。而非叶子节点,则是一种类别上的概括,从大方向的兴趣,不断细分到小方向的兴趣。我们希望这棵树的结构满足最大堆树的性质。同样,节点也有其自身的ID,我们称之为node_id。如上图,最左下方的节点,它的node_id是14,而对应的item_id是0.
- **Node-Embedding**:注意,此处的Embedding,并非我们已有的item-embedding,而是构建完成的树的节点对应的Embedding,由item-embedding通过规则生成,是我们的网络主要训练的目标。ID范围为所有0->节点数-1。我们同时也需准备一个映射表,来告诉模型,item_id到node_id的映射关系。
- **Travel**:是指叶子节点从root开始直到其自身的遍历路径,如上图,14号节点的Travel:0->1->3->7->14
- **Layer**:指树的层,如上图,共有4层。
> Paddle-TDM在训练时,不会改动树的结构,只会改动Node-Embedding。
### 树的准备流程
让我们以上图给出的简单树结构为例,来介绍TDM的模型准备流程。假设我们已经完成了树的聚类,并得到了如上图所示的树结构:
- 问题一:叶子节点的Embedding值是多少?答:叶子节点的node-embedding与对应的item的embedding值一致
- 问题二:非叶子节点的Embedding值是多少?答:非叶子节点的Embedding值初始化目前有两种方案:1、随机初始化。2、使用其子节点的emb均值。
- 问题三:树一定要求二叉树吗?答:没有这样的硬性要求。
- 问题四:若有item不在最后一层,树不平衡怎么办?答:树尽量平衡,不在最后一层也没有关系,我们可以通过其他方式让网络正常训练。
- 问题五:是每个用户都有一棵树,还是所有用户共享一颗树?答:只有一棵树,通过每一层的模型牵引节点的emb,使其尽量满足最大堆性质。
完成以上步骤,我们已经得到了树的结构,与每个节点的全部信息,现在让我们将其转换为Paddle-TDM训练所需的格式。我们需要产出四个数据:
#### Layer_list
记录了每一层都有哪些节点。训练用
```bash
# Layer list
1,2
3,4,5,6
7,8,9,10,11,12,13
14,15,16,17,18,19,20,21,22,23,24,25
```
#### Travel_list
记录每个叶子节点的Travel路径。训练用
```bash
# Travel list
1,3,7,14
1,3,7,15
1,3,8,16
...
2,5,12,25
2,6,13,0
```
#### Tree_Info
记录了每个节点的信息,主要为:是否是item/item_id,所在层级,父节点,子节点。检索用
```bash
# Tree info
0,0,0,1,2
0,1,0,3,4
0,1,0,5,6
0,2,1,7,8
...
10,4,12,0,0
11,4,12,0,0
```
#### Tree_Embedding
记录所有节点的Embedding表,格式如正常表。训练及检索用
以上数据设计的初衷是为了高效,在paddle网络中以Tensor的形式参与训练,运行时,不再需要进行频繁的树的结构的遍历,直接根据已有信息进行快速查找与训练。以上数据可以明文保存,但最终都需要转成ndarray,参与网络的初始化。
结合示例树,数据可以组织如右,下面介绍一些细节:
- Layer list从第2(index=1)层开始即可,因为0号节点不参与训练也不参与检索;
- Travel list的按照item_id的顺序组织,如第一行对应着item_id=0的遍历信息,同样,也不需要包含0号节点;
- Travel_list每行的长度必须相等,遇到不在最后一层的item,需要padding 0 直至长度和其他item一致;
- Tree_info包含了0号节点的信息,主要考量是,当我们拿到node_id查找其信息时,可以根据id在该数据中寻找第id行;
- Tree_info各列的含义是:itme_id(若无则为0),层级Layer,父节点node_id(无则为0),子节点node_id(若无则为0,若子节点数量不满,则需要paddding 0)
## 数据准备
如前所述,若我们关心的是输入一个user emb,得到他所感兴趣的item id,那我们就准备user_emb + 正样本item的格式的数据,负采样会通过paddle的tdm_sampler op得到。数据的准备不涉及树的结构,因而可以快速复用其他任务的训练数据来验证TDM效果。
```bash
# emb(float) \t item_id (int)
-0.9480544328689575 0.8702829480171204 -0.5691063404083252 ...... -0.04391402751207352 -0.5352795124053955 -0.9972627758979797 0.9397293329238892 4690780
```
## TDM网络设计
假设输入数据是 Emb + item_id,下面让我们开始介绍一个最简单的网络设计。
<p align="center">
<img align="center" src="img/demo_network.png">
<p>
上图给出了一个非常简单的TDM示例网络,没有添加任何复杂的逻辑,纯用DNN实现。
TDM的组网,宏观上,可以概括为三个部分
- 第一部分,输入侧的组网,如果想要对user/query进行一些预处理,或者添加Attention结构,通常都是在这一层次实现。
- 第二部分,每层的输入与节点信息交互的组网,这一部分是将user/query的信息与node信息结合,在树的不同层下,进行不同粒度兴趣的学习。通常而言,第一部分与第二部分具有紧密的联系,可以统一为一个部分。
- 第三部分,最终的判别组网,将每层交互得到的信息进行最终的概率判决。但这一层也不是必须的,并不要求所有层的信息都经过一个统一的分类器,可以各层拥有独立的概率判决器。为了逻辑划分更加清晰,我们在示例中添加了这个层次的组网,方便您更加直观的理解tdm网络。
再次强调,该示例组网仅为展示tdm的基本运行逻辑,请基于这个框架,升级改进您自己的网络。
## TDM组网细节
### 训练组网
训练组网中需要重点关注五个部分:
1. 网络输入的定义
2. 网络中输入侧的处理逻辑
3. node的负采样组网
4. input与node的交互网络
5. 判别及loss计算组网
#### 输入的定义
首先简要介绍输入的定义:
**demo模型,假设输入为两个元素:**
> 一、user/query的emb表示,该emb应该来源于特征的组合在某个空间的映射(比如若干特征取emb后concat到一起),或其他预训练模型的处理结果(比如将明文query通过nlp预处理得到emb表示)
> 二、item的正样本,是发生了实际点击/购买/浏览等行为的item_id,与输入的user/query emb强相关,是我们之后通过预测想得到的结果。
在paddle组网中,我们这样定义上面两个变量:
```python
def input_data(self):
"""
指定tdm训练网络的输入变量
"""
input_emb = fluid.data(
name="input_emb",
shape=[None, self.input_embed_size],
dtype="float32",
)
item_label = fluid.data(
name="item_label",
shape=[None, 1],
dtype="int64",
)
inputs = [input_emb] + [item_label]
return inputs
```
#### 输入侧的组网
**输入侧组网由FC层组成**
> 一、`input_fc`,主要功能是input_emb维度的压缩,只需一个fc即可。
> 二、`layer_fc`,主要功能是将input_emb映射到不同的兴趣层空间,和当层的node学习兴趣关系。有多少层,就添加多少个fc。
<p align="center">
<img align="center" src="img/input-net.png">
<p>
在paddle组网中,我们这样快速实现输入侧组网:
```python
def input_trans_layer(self, input_emb):
"""
输入侧训练组网
"""
# 将input压缩到与node相同的维度
input_fc_out = fluid.layers.fc(
input=input_emb,
size=self.node_emb_size,
act=None,
param_attr=fluid.ParamAttr(name="trans.input_fc.weight"),
bias_attr=fluid.ParamAttr(name="trans.input_fc.bias"),
)
# 将input_emb映射到各个不同层次的向量表示空间
input_layer_fc_out = [
fluid.layers.fc(
input=input_fc_out,
size=self.node_emb_size,
act="tanh",
param_attr=fluid.ParamAttr(
name="trans.layer_fc.weight." + str(i)),
bias_attr=fluid.ParamAttr(name="trans.layer_fc.bias."+str(i)),
) for i in range(self.max_layers)
]
return input_layer_fc_out
```
#### node的负采样组网
**tdm 负采样的核心是tdm_sampler OP**
tdm_sampler的运行逻辑如下:
1. 输入item_id,读travel_list,查表,得到该item_id对应的遍历路径(从靠近根节点的第一层一直往下直到存放该item的node)
2. 读layer_list,查表,得到每层都有哪些node
3. 循环:i = 0, 从第i层开始进行负采样
- 在item遍历路径上的node视为正样本,`positive_node_id``travel_list[item_id][i]`给出,其他同层的兄弟节点视为负样本,该层节点列表由`layer_list[i]`给出,如果`positive_node_id`不在`layer_list[i]`中,会提示错误。
- 在兄弟节点中进行随机采样,采样N个node,N由`neg_sampling_list[i]`的值决定,如果该值大于兄弟节点的数量,会提示错误。 采样结果不会重复,且不会采样到正样本。
- 如果`output_positive=True`,则会同时输出正负样本,否则只输出负采样的结果
- 生成该层`label`,shape与采样结果一致,正样本对应的label=1,负样本的label=0
- 生成该层`mask`,如果树是不平衡的,则有些item不会位于树的最后一层,所以遍历路径的实际长度会比其他item少,为了tensor维度一致,travel_list中padding了0。当遇到了padding的0时,tdm_sampler也会输出正常维度的采样结果,采样结果与label都为0。为了区分这部分虚拟的采样结果与真实采样结果,会给虚拟采样结果额外设置mask=0,如果是真实采样结果mask=1
- i += 1, 若i > layer_nums, break
4. 对输出的采样结果、label、mask进行整理:
- 如果`output_list=False`,则会输出三个tensor(samping_result, label, mask),shape形如`[batch_size, all_layer_sampling_nums, 1]`
-`output_list=True`,则会输出三个`list[tensor,...,tensor]``sampling_result_list/label_list/mask_list``len(list)`等于层数,将采样结果按照分属哪一层进行拆分,每个tensor的shape形如`[batch_size, layer_i_sampling_nums,1]`
```python
# 根据输入的item的正样本在给定的树上进行负采样
# sample_nodes 是采样的node_id的结果,包含正负样本
# sample_label 是采样的node_id对应的正负标签
# sample_mask 是为了保持tensor维度一致,padding部分的标签,若为0,则是padding的虚拟node_id
sample_nodes, sample_label, sample_mask = fluid.contrib.layers.tdm_sampler(
x=item_label,
neg_samples_num_list=self.neg_sampling_list,
layer_node_num_list=self.layer_node_num_list,
leaf_node_num=self.leaf_node_num,
tree_travel_attr=fluid.ParamAttr(name="TDM_Tree_Travel"),
tree_layer_attr=fluid.ParamAttr(name="TDM_Tree_Layer"),
output_positive=self.output_positive,
output_list=True,
seed=0,
tree_dtype='int64',
dtype='int64'
)
# 查表得到每个节点的Embedding
sample_nodes_emb = [
fluid.embedding(
input=sample_nodes[i],
is_sparse=True,
size=[self.node_nums, self.node_emb_size],
param_attr=fluid.ParamAttr(
name="TDM_Tree_Emb")
) for i in range(self.max_layers)
]
# 此处进行reshape是为了之后层次化的分类器训练
sample_nodes_emb = [
fluid.layers.reshape(sample_nodes_emb[i],
[-1, self.neg_sampling_list[i] +
self.output_positive, self.node_emb_size]
) for i in range(self.max_layers)
]
```
#### input与node的交互网络
**交互网络由FC层组成**
主要包含两个流程:
> 一、将输入进行维度上的`expand`,与采样得到的noed数量一致(当然也可以使用其他`broadcast`的网络结构)
> 二、input_emb与node_emb进行`concat`,过FC,计算兴趣上的匹配关系
<p align="center">
<img align="center" src="img/dnn-net.png">
<p>
在paddle的组网中,我们这样实现这一部分的逻辑:
```python
def _expand_layer(self, input_layer, node, layer_idx):
# 扩展input的输入,使数量与node一致,
# 也可以以其他broadcast的操作进行代替
# 同时兼容了训练组网与预测组网
input_layer_unsequeeze = fluid.layers.unsqueeze(
input=input_layer, axes=[1])
if self.is_test:
input_layer_expand = fluid.layers.expand(
input_layer_unsequeeze, expand_times=[1, node.shape[1], 1])
else:
input_layer_expand = fluid.layers.expand(
input_layer_unsequeeze, expand_times=[1, node[layer_idx].shape[1], 1])
return input_layer_expand
def classifier_layer(self, input, node):
# 扩展input,使维度与node匹配
input_expand = [
self._expand_layer(input[i], node, i) for i in range(self.max_layers)
]
# 将input_emb与node_emb concat到一起过分类器FC
input_node_concat = [
fluid.layers.concat(
input=[input_expand[i], node[i]],
axis=2) for i in range(self.max_layers)
]
hidden_states_fc = [
fluid.layers.fc(
input=input_node_concat[i],
size=self.node_emb_size,
num_flatten_dims=2,
act="tanh",
param_attr=fluid.ParamAttr(
name="cls.concat_fc.weight."+str(i)),
bias_attr=fluid.ParamAttr(name="cls.concat_fc.bias."+str(i))
) for i in range(self.max_layers)
]
# 如果将所有层次的node放到一起计算loss,则需要在此处concat
# 将分类器结果以batch为准绳concat到一起,而不是layer
# 维度形如[batch_size, total_node_num, node_emb_size]
hidden_states_concat = fluid.layers.concat(hidden_states_fc, axis=1)
return hidden_states_concat
```
#### 判别及loss计算组网
最终的判别组网会将所有层的输出打平放到一起,过`tdm.cls_fc`,再过`softmax_with_cross_entropy`层,计算cost,同时得到softmax的中间结果,计算acc或者auc。
```python
tdm_fc = fluid.layers.fc(input=layer_classifier_res,
size=self.label_nums,
act=None,
num_flatten_dims=2,
param_attr=fluid.ParamAttr(
name="tdm.cls_fc.weight"),
bias_attr=fluid.ParamAttr(name="tdm.cls_fc.bias"))
# 将loss打平,放到一起计算整体网络的loss
tdm_fc_re = fluid.layers.reshape(tdm_fc, [-1, 2])
# 若想对各个层次的loss辅以不同的权重,则在此处无需concat
# 支持各个层次分别计算loss,再乘相应的权重
sample_label = fluid.layers.concat(sample_label, axis=1)
sample_label.stop_gradient = True
labels_reshape = fluid.layers.reshape(sample_label, [-1, 1])
# 计算整体的loss并得到softmax的输出
cost, softmax_prob = fluid.layers.softmax_with_cross_entropy(
logits=tdm_fc_re, label=labels_reshape, return_softmax=True)
# 通过mask过滤掉虚拟节点的loss
sample_mask = fluid.layers.concat(sample_mask, axis=1)
sample_mask.stop_gradient = True
mask_reshape = fluid.layers.reshape(sample_mask, [-1, 1])
mask_index = fluid.layers.where(mask_reshape != 0)
mask_cost = fluid.layers.gather_nd(cost, mask_index)
# 计算该batch的均值loss,同时计算acc, 亦可在这里计算auc
avg_cost = fluid.layers.reduce_mean(mask_cost)
acc = fluid.layers.accuracy(input=softmax_prob, label=labels_reshape)
```
### 预测组网
预测的整体流程类似于beamsearch。预测组网中需要重点关注三个部分:
1. 网络输入的定义,及初始检索层的确定
2. 串行的通过各层分类器的流程
3. 每层选出topK及最终选出topK的方法
#### 网络输入
首先考虑这样一个问题,假设树是一颗十层的完全二叉树,我们要取topK=1024的召回结果,那么我们需不需要从树的第一层开始逐层计算fc与topK?答案显然是否定的,我们只需要计算最后一层的1024个节点即可。在开发的实验中,我们得到的结论是,tdm检索时,计算复杂度并不高,时间耗费中OP的调度占据了主要矛盾,通过模型裁剪,树剪枝,模型量化等都可以加快预测速度。
因此infer组网中首先考虑了跳层与剪枝的实现:我们定义了三个变量,`input_emb`,`first_layer_node`,`first_layer_node_mask`作为网络的输入。
- `input_emb`:预测时输入的user/query向量。
- `first_layer_node`:检索时的起始node_id,是变长类型。这样设置的好处是:1、可以输入某一层所有节点node_id,从而在某一层开始进行检索。2、也可以设置为特定node_id,从指定的树分枝开始检索。输入的node_id应该位于同一层。
- `first_layer_node_mask`:维度与`first_layer_node`相同,值一一对应。若node是叶子节点,则mask=1,否则设置mask=0。
在demo网络中,我们设置为从某一层的所有节点开始进行检索。paddle组网对输入定义的实现如下:
```python
def input_data(self):
input_emb = fluid.layers.data(
name="input_emb",
shape=[self.input_embed_size],
dtype="float32",
)
# first_layer 与 first_layer_mask 对应着infer起始的节点
first_layer = fluid.layers.data(
name="first_layer_node",
shape=[1],
dtype="int64",
lod_level=1, #支持变长
)
first_layer_mask = fluid.layers.data(
name="first_layer_node_mask",
shape=[1],
dtype="int64",
lod_level=1,
)
inputs = [input_emb] + [first_layer] + [first_layer_mask]
return inputs
```
确定起始层的方式比较简单,比较topK的大小与当层节点数,选取第一个节点数大于等于topK的层作为起始层,取它的节点作为起始节点。代码如下:
```python
def create_first_layer(self, args):
"""decide which layer to start infer"""
first_layer_id = 0
for idx, layer_node in args.layer_node_num_list:
if layer_node >= self.topK:
first_layer_id = idx
break
first_layer_node = self.layer_list[first_layer_id]
self.first_layer_idx = first_layer_id
return first_layer_node
```
#### 通过各层分类器的流程
tdm的检索逻辑类似beamsearch,简单来说:在每一层计算打分,得到topK的节点,将这些节点的孩子节点作为下一层的输入,如此循环,得到最终的topK。但仍然有一些需要注意的细节,下面将详细介绍。
- 问题一:怎么处理`input_emb`
- input_emb过`input_fc`,检索中,只需过一次即可:
```python
nput_trans_emb = self.input_trans_net.input_fc_infer(input_emb)
```
- 在通过每一层的分类器之前,过`layer_fc`,指定`layer_idx`,加载对应层的分类器,将输入映射到不同的兴趣粒度空间
```python
input_fc_out = self.input_trans_net.layer_fc_infer(
input_trans_emb, layer_idx)
```
- 问题二:怎样实现beamsearch?
我们通过在每一层计算打分,计算topK并拿到对应的孩子节点,for循环这个过程实现beamsearch。
```python
for layer_idx in range(self.first_layer_idx, self.max_layers):
# 确定当前层的需要计算的节点数
if layer_idx == self.first_layer_idx:
current_layer_node_num = len(self.first_layer_node)
else:
current_layer_node_num = current_layer_node.shape[1] * \
current_layer_node.shape[2]
current_layer_node = fluid.layers.reshape(
current_layer_node, [self.batch_size, current_layer_node_num])
current_layer_child_mask = fluid.layers.reshape(
current_layer_child_mask, [self.batch_size, current_layer_node_num])
# 查当前层node的emb
node_emb = fluid.embedding(
input=current_layer_node,
size=[self.node_nums, self.node_embed_size],
param_attr=fluid.ParamAttr(name="TDM_Tree_Emb"))
input_fc_out = self.input_trans_net.layer_fc_infer(
input_trans_emb, layer_idx)
# 过每一层的分类器
layer_classifier_res = self.layer_classifier.classifier_layer_infer(input_fc_out, node_emb, layer_idx)
# 过最终的判别分类器
tdm_fc = fluid.layers.fc(input=layer_classifier_res,
size=self.label_nums,
act=None,
num_flatten_dims=2,
param_attr=fluid.ParamAttr(
name="tdm.cls_fc.weight"),
bias_attr=fluid.ParamAttr(name="tdm.cls_fc.bias"))
prob = fluid.layers.softmax(tdm_fc)
positive_prob = fluid.layers.slice(
prob, axes=[2], starts=[1], ends=[2])
prob_re = fluid.layers.reshape(
positive_prob, [self.batch_size, current_layer_node_num])
# 过滤掉padding产生的无效节点(node_id=0)
node_zero_mask = fluid.layers.cast(current_layer_node, 'bool')
node_zero_mask = fluid.layers.cast(node_zero_mask, 'float')
prob_re = prob_re * node_zero_mask
# 在当前层的分类结果中取topK,并将对应的score及node_id保存下来
k = self.topK
if current_layer_node_num < self.topK:
k = current_layer_node_num
_, topk_i = fluid.layers.topk(prob_re, k)
# index_sample op根据下标索引tensor对应位置的值
# 若paddle版本>2.0,调用方式为paddle.index_sample
top_node = fluid.contrib.layers.index_sample(
current_layer_node, topk_i)
prob_re_mask = prob_re * current_layer_child_mask # 过滤掉非叶子节点
topk_value = fluid.contrib.layers.index_sample(
prob_re_mask, topk_i)
node_score.append(topk_value)
node_list.append(top_node)
# 取当前层topK结果的孩子节点,作为下一层的输入
if layer_idx < self.max_layers - 1:
# tdm_child op 根据输入返回其 child 及 child_mask
# 若child是叶子节点,则child_mask=1,否则为0
current_layer_node, current_layer_child_mask = \
fluid.contrib.layers.tdm_child(x=top_node,
node_nums=self.node_nums,
child_nums=self.child_nums,
param_attr=fluid.ParamAttr(
name="TDM_Tree_Info"),
dtype='int64')
```
- 问题三:怎样得到最终的topK个叶子节点?
在过每层分类器的过程中,我们保存了每层的topk节点,并将非叶子节点的打分置为了0,保存在`node_score`与`node_list`中。显然,我们需要召回的是topk个叶子节点,对所有层的叶子节点打分再计算一次topk,拿到结果。
```python
total_node_score = fluid.layers.concat(node_score, axis=1)
total_node = fluid.layers.concat(node_list, axis=1)
# 考虑到树可能是不平衡的,计算所有层的叶子节点的topK
res_score, res_i = fluid.layers.topk(total_node_score, self.topK)
res_layer_node = fluid.contrib.layers.index_sample(total_node, res_i)
res_node = fluid.layers.reshape(res_layer_node, [-1, self.topK, 1])
```
- 问题四:现在拿到的是node_id,怎么转成item_id?
如果有额外的映射表,可以将node_id转为item_id,但也有更方便的方法。在生成`tree_info`时,我们保存了每个node_id相应的item_id信息,直接使用它,将node_id对应的tree_info行的数据的第零维的item_id切出来。
```python
# 利用Tree_info信息,将node_id转换为item_id
tree_info = fluid.default_main_program().global_block().var("TDM_Tree_Info")
res_node_emb = fluid.layers.gather_nd(tree_info, res_node)
res_item = fluid.layers.slice(
res_node_emb, axes=[2], starts=[0], ends=[1])
res_item_re = fluid.layers.reshape(res_item, [-1, self.topK])
```
以上,我们便完成了训练及预测组网的全部部分。
## TDM-Demo运行细节
### 运行流程
tdm-demo是使用paddle组网实现的,运行流程与普通的paddle运行流程一致。分为以下步骤:
1. 组网
2. 定义数据读取方式
3. 设置optimizer
4. 设置执行器
5. 初始化模型参数/加载保存的参数
6. 运行训练网络
7. 保存训练的结果
```python
# 组网
tdm_model = TdmTrainNet(args)
inputs = tdm_model.input_data()
avg_cost, acc = tdm_model.tdm(inputs)
# 定义数据读取方式
dataset = get_dataset(inputs, args)
# 设置optimizer
optimizer = fluid.optimizer.AdamOptimizer(
learning_rate=args.learning_rate,
lazy_mode=True)
optimizer.minimize(avg_cost)
# 设置执行器
place = fluid.CPUPlace()
exe = fluid.Executor(place)
# 初始化模型参数/加载保存的参数
exe.run(fluid.default_startup_program())
# args.load_model:
# ......
# 运行训练网络
for epoch in range(args.epoch_num):
exe.train_from_dataset(
program=fluid.default_main_program(),
dataset=dataset,
fetch_list=[acc, avg_cost],
fetch_info=["Epoch {} acc".format(
epoch), "Epoch {} loss".format(epoch)],
print_period=10,
debug=False,
)
# 保存训练结果
model_path = os.path.join(args.model_files_path, "epoch_" + str(epoch))
fluid.io.save_persistables(executor=exe, dirname=model_path)
```
### 模型的加载与保存
我们在建树时,生成了树结构相应的四个文件。它们以明文或者npy的格式保存,在每次debug或训练时,读取的成本极高,可不可以只读取一次?答案是可以的,在第一次运行时,将他们保存为paddle的二进制模型文件,之后直接加载这个初始化的paddle模型即可。开发测试大数据模型时,往往可以将训练启动时间从10分钟以上压缩到1分钟以内。
通过启动命令的`args.load_model`控制是否使用paddle的二进制模型启动:
```python
if args.load_model:
# 从paddle二进制模型加载参数
path = args.init_model_files_path
fluid.io.load_persistables(
executor=exe,
dirname=path,
main_program=fluid.default_main_program())
lr = fluid.global_scope().find_var("learning_rate_0").get_tensor()
lr.set(np.array(args.learning_rate).a stype('float32'), place)
logger.info("Load persistables from \"{}\"".format(path))
else:
# 将明文树结构及数据,set到组网中的Variale中
# 不使用NumpyInitialize方法是考虑到树结构相关数据size过大,有性能风险
Numpy_model = {}
Numpy_model['TDM_Tree_Travel'] = tdm_model.tdm_param_prepare_dict['travel_array']
Numpy_model['TDM_Tree_Layer'] = tdm_model.tdm_param_prepare_dict['layer_array']
Numpy_model['TDM_Tree_Info'] = tdm_model.tdm_param_prepare_dict['info_array']
Numpy_model['TDM_Tree_Emb'] = tdm_model.tdm_param_prepare_dict['emb_array']
for param_name in Numpy_model:
param_t = fluid.global_scope().find_var(param_name).get_tensor()
if param_name == 'TDM_Tree_Emb':
param_t.set(Numpy_model[str(param_name)
].astype('float32'), place)
else:
param_t.set(Numpy_model[str(param_name)
].astype('int32'), place)
if args.save_init_model or not args.load_model:
logger.info("Begin Save Init model.")
model_path = os.path.join(args.model_files_path, "init_model")
fluid.io.save_persistables(executor=exe, dirname=model_path)
logger.info("End Save Init model.")
```
> 为什么每次加载模型手动Set `learning rate`?
>
> 学习率在paddle的组网中,是以一个`persistable=Ture`的长期变量储存在模型的Variable scope里的。每次使用load_persistables加载模型时,也会使用加载的模型的学习率覆盖本地模型的默认学习率,换言之,加载init_model以后,学习率也是保存init_model时的学习率。对模型的调试会产生不必要的影响,为了保证网络训练如预期,需要这样的手动set步骤。
### demo的训练运行方法
- 运行脚本为run_train.sh
```bash
sh run_train.sh
```
- 若模型是ndarray(刚完成树的构建),则将启动命令中的save_init_model设置为1
- 若模型事paddle模型(之前保存过初始化模型),则启动命令load_model应设置为1
- 运行前,需仔细检查:`thirdparty_path`, `train_data_path`,以及模型启动地址是否正确
- 运行前,需仔细检查:模型超参是否匹配,如学习率,线程,batch_size等
### demo的预测运行方法
- 运行脚本为run_infer.sh
```bash
sh run_infer.sh
```
- 运行前,需仔细检查:`thirdparty_path`, `test_data_path`,以及模型启动地址是否正确
### demo分布式运行方法
- demo代码中给出了本地模拟分布式的运行方式:
```bash
sh local_cluster.sh
```
- 首先需要运行本地训练,产出paddle的二进制模型文件`init_model`,使参数服务器可以加载该模型
- 分布式运行的超参在`async_train.sh`中调整
- paddle的参数服务器运行原理可以参考文档:[PaddlePaddle Fluid CPU分布式训练(Transplier)](https://github.com/PaddlePaddle/Fleet/tree/develop/markdown_doc/transpiler)
- 单机运行流程与分布式运行流程的区别,及入门使用文档:[基于DNN模型的点击率预估模型](https://github.com/PaddlePaddle/models/tree/develop/PaddleRec/ctr/dnn)
### demo的部署及推理
Demo代码中给出了基于paddle预测库加载tdm模型,输入emb产出item的端到端的推理示例,参考此示例,可以在服务器端快速部署tdm服务。
- 运行方式如下
```bash
sh run_predict.sh
```
- 首先需要运行`run_infer.sh`,打开`save_init_model`开关,使用`save_inference_model`产出paddle的推理模型,`predict.py`会加载`infer_model`,进行高速推理。
- 欲想进一步高速推理,需使用含预测库的paddle预测库,可以使用`mkl``mkl_dnn`等计算库加速op的计算。相关文档可以参考:[服务器端部署](https://www.paddlepaddle.org.cn/documentation/docs/zh/advanced_guide/inference_deployment/inference/index_cn.html)
- tdm相关op目前仅支持在cpu设备上运行,后续会支持GPU,欢迎关注。
\ No newline at end of file
# -*- coding=utf-8 -*-
"""
# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import sys
import six
import argparse
def str2bool(v):
"""
str2bool
"""
# because argparse does not support to parse "true, False" as python
# boolean directly
return v.lower() in ("true", "t", "1")
class ArgumentGroup(object):
"""
ArgumentGroup
"""
def __init__(self, parser, title, des):
"""
init
"""
self._group = parser.add_argument_group(title=title, description=des)
def add_arg(self, name, type, default, help, **kwargs):
"""
add_arg
"""
type = str2bool if type == bool else type
# if type == list: # by dwk
# self._group.add_argument("--" + name, nargs='+', type=int)
# else:
self._group.add_argument(
"--" + name,
default=default,
type=type,
help=help + ' Default: %(default)s.',
**kwargs)
def parse_args():
"""
parse_args
"""
# global
parser = argparse.ArgumentParser("main")
main_g = ArgumentGroup(parser, "main", "global conf")
main_g.add_arg("random_seed", int, 0, "random_seed")
main_g.add_arg("cpu_num", int, 1, "cpu_num")
main_g.add_arg("is_local", bool, False,
"whether to perform local training")
main_g.add_arg("is_cloud", bool, False, "")
main_g.add_arg("is_test", bool, False, "")
main_g.add_arg("sync_mode", str, "async", "distributed traing mode")
main_g.add_arg("need_trace", bool, False, "")
main_g.add_arg("need_detail", bool, False, "")
# model
model_g = ArgumentGroup(
parser, "model", "options to init, resume and save model.")
model_g.add_arg("epoch_num", int, 3, "number of epochs for train")
model_g.add_arg("batch_size", int, 16, "batch size for train")
model_g.add_arg("learning_rate", float, 5e-5,
"learning rate for global training")
model_g.add_arg("layer_size", int, 4, "layer size")
model_g.add_arg("node_nums", int, 26, "tree node nums")
model_g.add_arg("node_emb_size", int, 64, "node embedding size")
model_g.add_arg("query_emb_size", int, 768, "input query embedding size")
model_g.add_arg("neg_sampling_list", list, [
1, 2, 3, 4], "nce sample nums at every layer")
model_g.add_arg("layer_node_num_list", list, [
2, 4, 7, 12], "node nums at every layer")
model_g.add_arg("leaf_node_num", int, 13, "leaf node nums")
# for infer
model_g.add_arg("child_nums", int, 2, "child node of ancestor node")
model_g.add_arg("topK", int, 1, "best recall result nums")
model_g = ArgumentGroup(
parser, "path", "files path of data & model.")
model_g.add_arg("train_files_path", str, "./data/train", "train data path")
model_g.add_arg("test_files_path", str, "./data/test", "test data path")
model_g.add_arg("model_files_path", str, "./models", "model data path")
# build tree and warm up
model_g.add_arg("build_tree_init_path", str,
"./data/gen_tree/demo_fake_input.txt", "build tree embedding path")
model_g.add_arg("warm-up", bool, False,
"warm up, builing new tree.")
model_g.add_arg("rebuild_tree_per_epochs", int, -1,
"re-build tree per epochs, -1 means don't re-building")
model_g.add_arg("tree_info_init_path", str,
"./thirdparty/tree_info.txt", "embedding file path")
model_g.add_arg("tree_travel_init_path", str,
"./thirdparty/travel_list.txt", "TDM tree travel file path")
model_g.add_arg("tree_layer_init_path", str,
"./thirdparty/layer_list.txt", "TDM tree layer file path")
model_g.add_arg("tree_emb_init_path", str,
"./thirdparty/tree_emb.txt", "TDM tree emb file path")
model_g.add_arg("load_model", bool, False,
"whether load model(paddle persistables model)")
model_g.add_arg("save_init_model", bool, False,
"whether save init model(paddle persistables model)")
model_g.add_arg("init_model_files_path", str, "./models/init_model",
"init model params by paddle model files for training")
model_g.add_arg("infer_model_files_path", str, "./models/init_model",
"model files path for infer")
args = parser.parse_args()
return args
def print_arguments(args):
"""
print arguments
"""
print('----------- Configuration Arguments -----------')
for arg, value in sorted(six.iteritems(vars(args))):
print('%s: %s' % (arg, value))
print('------------------------------------------------')
DIRS=`pwd`
data_path="${DIRS}/data"
train_files_path="${data_path}/train"
test_files_path="${data_path}/test"
model_files_path="${DIRS}/model"
# init_model will download in thirdparty folder when do paddlecloud training
init_model_files_path="${model_files_path}/init_model"
thirdparty_path="${DIRS}/thirdparty"
tree_travel_init_path="${thirdparty_path}/travel_list.txt"
tree_layer_init_path="${thirdparty_path}/layer_list.txt"
tree_info_init_path="${thirdparty_path}/tree_info.txt"
python_bin="python"
echo `pwd`
function main() {
cmd="${python_bin} distributed_train.py \
--is_cloud=0 \
--sync_mode=async \
--cpu_num=1 \
--random_seed=0 \
--epoch_num=1 \
--batch_size=32 \
--learning_rate=3e-4 \
--train_files_path=${train_files_path} \
--test_files_path=${test_files_path} \
--model_files_path=${model_files_path} \
--init_model_files_path=${init_model_files_path} \
--tree_travel_init_path=${tree_travel_init_path} \
--tree_info_init_path=${tree_info_init_path} \
--tree_layer_init_path=${tree_layer_init_path} "
echo ${cmd}
${cmd}
}
main "$@"
-0.9480544328689575 0.8702829480171204 -0.5691063404083252 0.3169376850128174 0.33546653389930725 0.6142528057098389 0.9836248755455017 0.7275366187095642 0.34716030955314636 -0.4742715358734131 0.7336636781692505 0.04654106870293617 -0.20831291377544403 -0.4481041431427002 -0.525967001914978 -0.9841973781585693 0.9882086515426636 -0.027082571759819984 0.4890778362751007 -0.6382721662521362 0.6899682283401489 -0.38224223256111145 0.9986906051635742 -0.00020712893456220627 -0.9492083787918091 0.7107149958610535 0.9882597923278809 0.26990818977355957 -0.9535472393035889 -0.1559726893901825 0.5885211825370789 0.17909500002861023 -0.8814249038696289 0.22860293090343475 -0.4293985366821289 -0.9652239084243774 -0.9447112679481506 -0.15577830374240875 -0.6805497407913208 0.6221181154251099 0.6404242515563965 0.1448463648557663 -0.5257529020309448 0.12640823423862457 -0.9252819418907166 -0.3268739581108093 0.8049232363700867 0.9740312099456787 0.33457809686660767 -0.8270060420036316 -0.06581008434295654 -0.2529199719429016 0.9999998807907104 -0.999997079372406 0.85847008228302 0.2864536643028259 -0.3738149404525757 -0.9884565472602844 -0.7930119037628174 -0.7500308156013489 0.6861344575881958 -0.999988853931427 0.9873992204666138 -0.08930592238903046 0.21770808100700378 -0.27190539240837097 -0.679567277431488 0.35942506790161133 0.3420848250389099 0.9409869909286499 0.8751437664031982 0.1828843057155609 0.9682096838951111 -0.15853644907474518 -0.1601446568965912 0.018752284348011017 0.4887729287147522 0.9999999403953552 -0.042612675577402115 0.7375731468200684 -0.5218359231948853 -0.24672318994998932 -0.4977828562259674 -0.19678929448127747 0.9999991655349731 0.6342479586601257 -0.0021091371309012175 -0.7912644147872925 -0.8245441913604736 -0.8503287434577942 0.24679483473300934 -0.13345639407634735 -0.4827110767364502 -0.5528470873832703 0.8379515409469604 0.3365992307662964 -0.23395371437072754 0.30137789249420166 0.6554356217384338 0.7143795490264893 -0.9463644027709961 0.9353510737419128 0.9723365306854248 0.9699011445045471 -0.5872727036476135 -0.1483442187309265 0.31902876496315 -0.7438213229179382 -0.267783522605896 0.6152546405792236 0.1536981612443924 -0.34291231632232666 -0.7694793939590454 -0.034810300916433334 -0.9282379150390625 -0.07565831393003464 -0.6177279949188232 0.9257068037986755 -0.5235797762870789 0.5636262893676758 -0.3359975516796112 0.43728208541870117 -0.8021860718727112 0.19429314136505127 -0.4344169795513153 0.8767723441123962 0.9269178509712219 0.051557812839746475 0.24033737182617188 0.30773890018463135 0.20496289432048798 0.25821128487586975 0.19531913101673126 0.9219141602516174 0.731987714767456 -0.147042915225029 0.16378480195999146 0.632792592048645 0.8717026710510254 -0.48667508363723755 -0.9421618580818176 0.9999619126319885 -0.805202066898346 -0.17740759253501892 -0.8062586784362793 0.8192204236984253 0.16358403861522675 -0.4860736131668091 -0.15365929901599884 -0.24501872062683105 -0.4635009169578552 0.8367763757705688 0.8025020360946655 0.9206703901290894 -0.6961565017700195 0.9824270009994507 0.6540120244026184 -0.9255840182304382 -0.9892961382865906 0.5214773416519165 -0.9747877717018127 0.5705400705337524 -0.6537265777587891 -0.778024435043335 -0.5822799205780029 -0.3444381654262543 -0.9259541630744934 -0.7785751819610596 0.9946136474609375 -0.13341118395328522 0.9719166159629822 -0.6909202337265015 0.4316543638706207 -0.998206377029419 -0.6213840246200562 -0.8628668189048767 -0.9943762421607971 -0.34595680236816406 -0.5426640510559082 -0.9999998211860657 0.9983428120613098 -0.3715406060218811 0.6625471711158752 0.991619348526001 -0.49132609367370605 -0.1220390647649765 -0.37494972348213196 0.1248563677072525 -0.7821731567382812 -0.9299596548080444 0.2194000482559204 -0.8428259491920471 0.970793604850769 0.6422125101089478 0.7525355219841003 -0.7346519827842712 0.9936985969543457 0.9903855919837952 -0.6798727512359619 -0.958869457244873 -0.17401373386383057 0.2149842083454132 -0.33881470561027527 0.44143083691596985 -0.19633857905864716 -0.28943580389022827 0.7924275398254395 -0.12080565094947815 -0.9177014827728271 0.2820487320423126 -0.02769811823964119 -0.10200914740562439 -0.06917869299650192 0.9082639217376709 0.9715079665184021 0.226842001080513 0.7940313816070557 -0.895995557308197 0.8971980214118958 -0.8616856336593628 -0.9642254710197449 0.7317101359367371 0.22378572821617126 0.21944323182106018 -0.10572226345539093 0.8330612778663635 0.8941041827201843 -0.15057823061943054 0.9597658514976501 -0.8842217326164246 -0.9673177003860474 0.2529902458190918 -0.5620787143707275 -0.3615722060203552 0.6900137066841125 -0.5109211206436157 -0.44103994965553284 -0.0687171071767807 0.7434810996055603 -0.182602658867836 0.39662590622901917 -0.3907196819782257 -0.897222638130188 0.3724368214607239 -0.4301374554634094 0.2966064214706421 0.8454129099845886 -0.028251996263861656 -0.5071316957473755 0.6883982419967651 0.6440052390098572 -0.20861011743545532 0.04759825021028519 0.40223830938339233 0.9302568435668945 -0.4137932360172272 0.842984676361084 0.5772297382354736 0.8739673495292664 0.30998045206069946 -0.12564733624458313 -0.2287536859512329 -0.5028448700904846 -0.024959489703178406 0.9076481461524963 -0.27138394117355347 -0.07135224342346191 0.545727550983429 -0.9364309310913086 -0.9002553820610046 0.8205761313438416 -0.7223145961761475 -0.5490404367446899 -0.06743834167718887 0.9957395195960999 0.2774718701839447 -0.9589726328849792 -0.5507056713104248 0.5633119940757751 0.19945119321346283 0.5139588117599487 -0.29365769028663635 0.2589624226093292 0.8205932378768921 -0.4676002562046051 0.76975417137146 -0.8745505809783936 0.7822840213775635 0.06313923001289368 -0.3085383176803589 0.7778911590576172 0.43714478611946106 -0.7621023058891296 -0.8691548109054565 0.9862700700759888 0.5158051252365112 0.9535803198814392 -0.9357631802558899 -0.09678655117750168 0.46401405334472656 0.37646034359931946 0.2493618130683899 -0.37036871910095215 0.44625458121299744 -0.6171474456787109 -0.9426791667938232 0.9215719699859619 0.6411372423171997 0.9866154193878174 0.9951940774917603 -0.5669248700141907 0.11575046926736832 -0.5614780187606812 -0.7779515981674194 0.8369724750518799 -0.9703425765037537 0.40080270171165466 0.11768914014101028 0.7245428562164307 0.2860548496246338 0.04602481797337532 0.9351804256439209 -0.07499267160892487 -0.8416668176651001 -0.5895882844924927 0.13477011024951935 0.6291114091873169 0.6402739882469177 0.9226657152175903 0.5935531854629517 -0.9426186680793762 -0.12135419249534607 -0.7278366684913635 -0.32659876346588135 -0.24795940518379211 -0.4225684702396393 0.8498977422714233 0.2410791963338852 0.4565314054489136 0.6556909084320068 0.9958739280700684 0.6878873705863953 0.35973143577575684 -0.2159281224012375 0.918936550617218 0.9210938215255737 0.7355884313583374 0.03672586381435394 -0.9918020963668823 0.13276700675487518 -0.819240391254425 -0.6741007566452026 -0.3729737102985382 0.962843656539917 0.801899254322052 -1.3634562492370605e-05 0.9992533326148987 -0.18473781645298004 0.484240859746933 -0.7103394865989685 -0.4507419168949127 0.5676354169845581 -0.7187457084655762 -0.007040190510451794 -0.7229022979736328 -0.7384819984436035 -0.0011260672472417355 0.47381356358528137 -0.6711698174476624 0.4395555257797241 -0.5639545321464539 0.9019620418548584 -0.26680004596710205 0.06668909639120102 0.45266470313072205 0.3126644492149353 0.21646928787231445 0.7008609771728516 0.8514515161514282 0.8900784254074097 -0.1714429408311844 -0.26488712430000305 0.822838306427002 0.7984057664871216 0.6937839984893799 -0.8676029443740845 -0.912756085395813 0.9952932000160217 0.6609575748443604 0.26621559262275696 -0.9338613748550415 -0.36709266901016235 0.7006247639656067 -0.13456419110298157 -0.9860835075378418 -0.0030525538604706526 0.7741578817367554 -0.9949805736541748 0.9944281578063965 -0.2773399353027344 -0.27521568536758423 0.873822808265686 -0.8505438566207886 0.9219252467155457 0.9506142139434814 -0.9931663274765015 0.2094208300113678 0.8989949226379395 -0.8263533711433411 0.7351751327514648 0.5883669853210449 0.5063994526863098 -0.010385761968791485 -0.16071544587612152 0.5572603344917297 0.9975792169570923 -0.37277889251708984 0.2969944179058075 0.4745742082595825 0.46699199080467224 0.8417081832885742 -0.9797468781471252 -0.9320610761642456 0.9814757108688354 -0.9080472588539124 -0.9693748950958252 -0.8820312023162842 0.6830160617828369 0.4663272798061371 -0.41925233602523804 0.9973465800285339 0.43139731884002686 -0.9547752141952515 -0.5317192077636719 -0.43856996297836304 -0.3189813494682312 -0.6222522258758545 0.8899905681610107 -0.17611898481845856 0.6160949468612671 -0.6759617328643799 0.8942022323608398 -0.9842967987060547 -0.785462498664856 -0.2826366126537323 -0.7371346354484558 -0.22471989691257477 0.2516322731971741 -0.8836060762405396 -0.2880946099758148 -0.17259182035923004 -0.6435271501541138 0.5081992149353027 0.9502476453781128 0.08592165261507034 0.7430248856544495 0.8532432317733765 -0.8040454387664795 0.39988598227500916 0.0879754051566124 -0.8446376919746399 0.9410332441329956 0.539093017578125 -0.9971553087234497 -0.34493348002433777 -0.6404770612716675 -0.9350262880325317 -0.30913853645324707 -0.5400170087814331 -0.3888579308986664 0.3861994743347168 0.9555003046989441 -0.045868881046772 -0.7948362827301025 -0.9847419857978821 0.28334569931030273 0.9829130172729492 0.9022071957588196 0.8460508584976196 0.8827956914901733 0.5217266082763672 0.8388376235961914 -0.4737439751625061 -0.7367866039276123 0.6091421842575073 0.6935133934020996 0.3292695879936218 0.6819717884063721 0.6288567781448364 -0.9852819442749023 -0.9325888156890869 0.7079160809516907 -0.2522243857383728 0.29061344265937805 0.4168351888656616 -0.17085932195186615 -0.9821330308914185 -0.08980102837085724 0.1705685257911682 0.4749109447002411 0.4352322518825531 -0.7320473194122314 0.1749090999364853 -0.6090183258056641 -0.9999996423721313 0.11408602446317673 0.636742115020752 -0.9999560713768005 -0.528277575969696 -0.04669971019029617 0.16914376616477966 0.9975010752677917 -0.27113035321235657 -0.91581791639328 -0.5396955013275146 -0.6812576651573181 0.06048664078116417 0.8771249055862427 -0.28968605399131775 0.9606621265411377 0.3088063597679138 0.7697410583496094 0.8498889803886414 -0.9196180105209351 0.4746979773044586 0.3220598101615906 -0.05602428317070007 0.025225158780813217 0.849922239780426 -0.5332156419754028 0.8905873894691467 -0.9448485374450684 0.5047239065170288 -0.42437779903411865 0.34286928176879883 0.16571670770645142 -0.762528657913208 0.9356507658958435 -0.7949631214141846 0.2949289083480835 0.9999998211860657 -0.6150386333465576 -0.25548219680786133 0.33827531337738037 -0.07054266333580017 -0.19729135930538177 0.1573161482810974 -0.05042427405714989 0.7093042135238647 -0.5755212903022766 0.2684229016304016 -0.47712960839271545 0.38820967078208923 -0.9981969594955444 -0.8153560757637024 -0.4216618835926056 -0.9716876745223999 -0.815239667892456 0.5604946613311768 0.9999800324440002 -0.2431851029396057 -0.8518420457839966 0.8317279815673828 -0.457424134016037 -0.9970026016235352 0.07626709342002869 -0.7131580114364624 0.8536381125450134 -0.6067755222320557 0.9662473201751709 -0.5714900493621826 0.8362305164337158 -0.980530321598053 0.70802903175354 -0.37646859884262085 0.32210078835487366 0.7595421671867371 -0.9303385019302368 0.9706170558929443 0.4516674876213074 -0.5156293511390686 -0.976844847202301 0.7429302930831909 -0.6604652404785156 0.9990907907485962 0.7750779390335083 -0.19849209487438202 -0.9612411856651306 0.30241459608078003 -0.6022388339042664 0.3015974462032318 0.7366891503334045 0.3670116066932678 0.5230567455291748 -0.6088293790817261 -0.4208856225013733 0.5257665514945984 0.9806308150291443 0.9732798933982849 0.17695142328739166 0.9426453113555908 -0.46514642238616943 0.03982577100396156 -0.3363747298717499 -0.6221197843551636 -0.0697956532239914 -0.5869790315628052 -0.9999690651893616 -0.4498049020767212 0.8669120073318481 -0.858860194683075 -0.6967154741287231 -0.5750628709793091 -0.7230195999145508 0.7416847348213196 0.9926733374595642 -0.8363938331604004 0.28877055644989014 0.5237901210784912 0.48778727650642395 0.18297745287418365 -0.6391410827636719 0.09669660031795502 -0.2378515601158142 0.39897438883781433 -0.9066296815872192 -0.4131527543067932 0.04222756251692772 -0.165339395403862 0.3569805324077606 0.9393270611763 -0.09812773019075394 0.3301991820335388 0.4748114049434662 -0.5020018815994263 0.3381231129169464 -0.45781758427619934 0.6777403354644775 -0.6713153123855591 -0.997413694858551 0.21004293859004974 0.2904956340789795 -0.14372330904006958 -0.7342061996459961 -0.3686257004737854 -0.9125393629074097 -0.35528478026390076 0.5280635356903076 0.8971065878868103 -0.38137340545654297 -0.518653154373169 0.9467587471008301 -0.6497949957847595 0.901367723941803 0.8000989556312561 -0.23680521547794342 -0.37908563017845154 0.5199007987976074 -0.6792205572128296 -0.7659827470779419 0.7048740386962891 -0.9803741574287415 -0.9400724172592163 0.9975001215934753 -0.49684441089630127 0.6033856272697449 0.8939706683158875 0.9930545091629028 0.9207314848899841 0.9822189807891846 0.14152127504348755 -0.4911538064479828 0.778936505317688 -0.9736407399177551 -0.1471155285835266 -0.09989407658576965 0.8127882480621338 0.9998739361763 0.9998676180839539 -0.2282087206840515 -0.9569512009620667 -0.6656563878059387 0.2089112401008606 -0.47332215309143066 0.9998306035995483 0.9494611620903015 -0.059000447392463684 -0.7915271520614624 -0.9219574928283691 -0.006159229204058647 0.37470048666000366 -0.894044041633606 -0.9407564401626587 0.9027561545372009 0.33179017901420593 0.8828270435333252 0.5471377372741699 0.5865803956985474 0.42496320605278015 0.22990956902503967 -0.4480423331260681 0.5281573534011841 -0.7434720396995544 0.4271245300769806 0.0095954155549407 0.9575615525245667 0.3099426329135895 -0.8156846761703491 0.09816870093345642 -0.4230731427669525 0.7467312216758728 0.9663402438163757 -0.9331629276275635 0.11204610764980316 -0.012516902759671211 -0.8933897018432617 0.7708922624588013 0.9589368104934692 0.47833549976348877 -0.9270305037498474 -0.8773804306983948 0.37763848900794983 -0.591926097869873 -0.8916716575622559 -0.16091710329055786 0.11995232850313187 -0.5159960985183716 -0.005725824274122715 0.9832568168640137 -0.5129912495613098 -0.8562396168708801 0.539741039276123 -0.7333481311798096 -0.8360357284545898 -0.22443562746047974 0.5057839155197144 -0.9373593926429749 0.3069112002849579 -0.3884895443916321 -0.9998724460601807 -0.5230441093444824 -0.7358835935592651 -0.011600411497056484 0.29529768228530884 0.8183577656745911 -0.2606428265571594 0.35493770241737366 0.015006400644779205 0.5407224893569946 0.7436368465423584 -0.3411730229854584 -0.7252484560012817 0.8832615613937378 -0.9372369647026062 -0.9267153739929199 0.3185942471027374 -0.0641348659992218 0.9999977350234985 -0.08007889240980148 -0.33639591932296753 0.2531973123550415 0.7970564365386963 -0.2841281294822693 -0.4326792359352112 -0.04391402751207352 -0.5352795124053955 -0.9972627758979797 0.9397293329238892
-0.9596502780914307 -0.2064797282218933 -0.9381784200668335 0.9166239500045776 0.5455021858215332 0.9475671648979187 0.5881674289703369 -0.6455081701278687 0.9966173768043518 -0.9805982112884521 -0.6139155626296997 -0.24035650491714478 0.46691080927848816 0.43893274664878845 -0.5183154344558716 -0.8582708835601807 0.9830869436264038 0.044357720762491226 -0.6102583408355713 -0.21133452653884888 0.7775817513465881 -0.9840980172157288 0.9301184415817261 0.5516620874404907 -0.7257400155067444 0.08694414794445038 0.995104968547821 0.2764783203601837 -0.8865673542022705 0.6926647424697876 -0.15952430665493011 0.492216557264328 0.6023021936416626 -0.3244847059249878 0.58124178647995 -0.054057762026786804 -0.6212912797927856 -0.6048703789710999 -0.38891369104385376 0.5239801406860352 0.6215460300445557 -0.6993294358253479 -0.8135843276977539 0.49972474575042725 -0.5532220602035522 -0.09299888461828232 -0.4588266909122467 0.7316563129425049 0.9643253684043884 -0.24524424970149994 0.5146752595901489 -0.7655612826347351 0.9999998211860657 -0.9999908208847046 -0.9373854994773865 0.1253662109375 -0.9880169630050659 -0.8978806734085083 -0.6812539100646973 -0.7012249231338501 -0.06390327215194702 -0.9999490976333618 0.9766309857368469 0.0287643875926733 -0.032423969358205795 -0.9134105443954468 0.24829328060150146 0.9951854348182678 -0.9632328152656555 0.778976321220398 0.2652217149734497 -0.6897242069244385 0.20308157801628113 0.7152289152145386 -0.7160001993179321 -0.5131860971450806 0.4696525037288666 0.9999997615814209 -0.6833992600440979 0.8251846432685852 0.7956312298774719 0.29183754324913025 -0.9787519574165344 -0.08049725741147995 0.9999969005584717 0.5331002473831177 -0.08372920751571655 -0.6042588353157043 -0.9572256803512573 -0.3983420133590698 -0.6631897687911987 -0.6948000192642212 -0.6551510691642761 -0.7035293579101562 0.9888321161270142 -0.9661588072776794 -0.9979309439659119 0.6261214017868042 0.6562008857727051 -0.9745887517929077 -0.16800448298454285 0.8456803560256958 0.632979691028595 0.9245152473449707 -0.7019068002700806 -0.6195677518844604 -0.934018611907959 -0.9834660887718201 -0.5953845977783203 -0.9835080504417419 -0.6180385947227478 -0.9425384402275085 -0.18191774189472198 0.742606520652771 0.0555659718811512 0.004454104695469141 0.757578432559967 0.9956852197647095 -0.9904167652130127 0.9858271479606628 0.9876990914344788 0.9800713062286377 -0.9568817615509033 0.7770229578018188 0.9419116377830505 0.9847861528396606 -0.1785806268453598 0.5304444432258606 0.9004863500595093 0.07155163586139679 -0.9598394632339478 0.6090109944343567 0.20461292564868927 0.9990237355232239 0.9135745763778687 -0.685508668422699 0.20175974071025848 -0.6681017875671387 0.6980068683624268 0.13149060308933258 -0.8983231782913208 0.9999948143959045 0.49216926097869873 -0.6280950307846069 -0.06456910073757172 0.8074672818183899 0.9820876717567444 -0.16259713470935822 -0.05005798488855362 -0.750557005405426 -0.054315026849508286 0.9979204535484314 0.37431439757347107 0.22760047018527985 -0.763473391532898 0.9794737100601196 -0.6684877872467041 0.19290126860141754 0.8257688879966736 -0.4921981394290924 -0.886863112449646 -0.027595821768045425 0.3064476549625397 -0.9801270961761475 0.8297362923622131 0.5600531101226807 -0.5216299295425415 -0.9164299964904785 -0.34069201350212097 0.9138628840446472 0.09580680727958679 -0.9501163363456726 0.5240556001663208 -0.11128894984722137 0.9692385792732239 -0.7172938585281372 -0.38459068536758423 -0.2466081827878952 -0.44932663440704346 -0.9999997019767761 0.9113821983337402 0.8850970268249512 -0.19087862968444824 0.5921463966369629 -0.3822471797466278 0.7260957956314087 0.6769115924835205 -0.5168147683143616 -0.4553408920764923 -0.9907394647598267 0.9376416802406311 -0.9220575094223022 0.9922822713851929 0.5081039667129517 0.7256200313568115 0.9871693253517151 0.9972239136695862 0.9847745895385742 0.10291305929422379 -0.6537336111068726 0.6085623502731323 -0.8914912939071655 0.24634301662445068 0.7290909290313721 -0.8103992938995361 0.6112951040267944 0.9372643232345581 0.6112270951271057 -0.8108884692192078 0.9503621459007263 0.6209818720817566 0.4344196617603302 0.07972149550914764 0.8929663896560669 0.9041445255279541 -0.7399629354476929 -0.7281633615493774 -0.8557561635971069 0.8464692831039429 -0.9779404997825623 0.3316557705402374 0.40076181292533875 0.633644700050354 -0.8787956833839417 0.6620866060256958 -0.8612970113754272 -0.6801326274871826 0.5389697551727295 0.9433333277702332 -0.9450985193252563 -0.688960075378418 0.6862993240356445 0.9955192804336548 -0.5419031977653503 0.8112773895263672 0.45067739486694336 0.028887160122394562 0.9211795926094055 -0.06282729655504227 -0.2332378625869751 -0.5878286957740784 -0.8907042741775513 0.29944276809692383 -0.16063743829727173 0.05254950374364853 -0.594499945640564 0.9649887084960938 0.6937626600265503 0.8075132369995117 -0.9388220906257629 0.6497811675071716 -0.679775595664978 0.3266030251979828 -0.23307138681411743 0.4550355076789856 -0.8110816478729248 0.9751114249229431 -0.30157455801963806 0.9275716543197632 0.8904926776885986 -0.07696086913347244 0.10537611693143845 -0.6375821232795715 0.11500296741724014 0.5183850526809692 -0.6421386003494263 -0.6301305294036865 0.6190533638000488 0.25911644101142883 -0.8938463926315308 0.9006668329238892 -0.31818029284477234 -0.9804210662841797 0.41685950756073 0.9319990873336792 0.5303524732589722 -0.4140307903289795 0.8353828191757202 -0.90266352891922 0.8773803114891052 0.8420872688293457 -0.9995040893554688 -0.9341684579849243 0.963284432888031 -0.9818620681762695 0.4304698407649994 -0.9822965860366821 0.9949061274528503 -0.40578579902648926 0.30490949749946594 0.9951508641242981 0.44930604100227356 -0.7546215057373047 0.584186315536499 0.7601777911186218 0.08968625962734222 0.4928723871707916 -0.9728593230247498 0.2715146541595459 -0.7455699443817139 0.46102938055992126 -0.9451732039451599 -0.7525827884674072 0.954595148563385 0.975450873374939 0.4175814986228943 0.29125291109085083 -0.2734059989452362 0.9907719492912292 0.987868070602417 0.9596401453018188 -0.2962920665740967 -0.07588173449039459 -0.9211491346359253 0.9027813076972961 -0.6194667816162109 0.5845260620117188 -0.2822529971599579 0.7833741903305054 -0.5442430973052979 -0.6471794247627258 0.9926791787147522 -0.33050793409347534 0.42991021275520325 -0.05765031650662422 -0.2883135974407196 0.41375648975372314 0.9425656199455261 0.9143874645233154 -0.11701837182044983 0.9843810200691223 -0.8602148294448853 -0.2694736421108246 0.4101297855377197 0.9235814213752747 -0.5873287320137024 0.9358413219451904 0.8809385299682617 0.4097065031528473 0.08688364923000336 0.9776933789253235 0.22549568116664886 0.8745632171630859 -0.23294687271118164 -0.12387227267026901 -0.9048081636428833 0.8706071376800537 0.44999921321868896 -0.9883831143379211 0.19377750158309937 -0.12186551839113235 -0.893645703792572 -0.1519896388053894 -0.9260224103927612 0.9022954106330872 0.619497537612915 0.9863616228103638 0.24169684946537018 0.8421893119812012 0.8189255595207214 -0.2657428979873657 0.23915109038352966 -0.7431600093841553 -0.9900652766227722 0.6908107399940491 0.7959895133972168 -0.27204111218452454 0.3594563603401184 0.40387383103370667 -0.8998348116874695 -0.9854731559753418 0.32438114285469055 -0.4063967168331146 -0.11363716423511505 0.8705536127090454 -0.7959452271461487 0.1399015188217163 0.15803225338459015 0.6170897483825684 0.9185621738433838 0.5345101356506348 -0.8056715726852417 -0.8152719140052795 0.04699842259287834 -0.7990778684616089 -0.9460972547531128 0.8609306216239929 0.9984018802642822 -0.6334623098373413 0.798535168170929 -0.9844101667404175 -0.04490230232477188 -0.015621582977473736 -0.4759414494037628 -0.8449337482452393 -0.057339586317539215 -0.8107334971427917 -0.9993109703063965 -0.7487984895706177 0.38014188408851624 -0.6851873397827148 -0.9227011203765869 -0.18570774793624878 0.9404839873313904 0.02813592739403248 -0.9927362203598022 0.7849021553993225 -0.5160990953445435 -0.9003106355667114 0.4176490902900696 0.4857790768146515 0.4328361451625824 -0.9891844987869263 -0.7999477982521057 -0.3776840567588806 0.999720573425293 -0.4740419089794159 -0.7009365558624268 0.1739397794008255 0.1447550654411316 0.9029195308685303 -0.36368992924690247 -0.8722325563430786 -0.7760541439056396 0.2244994044303894 -0.995566725730896 -0.9907702207565308 0.7101743817329407 0.2307601273059845 -0.9849338531494141 0.46691739559173584 0.2574957013130188 -0.6413506269454956 -0.752801775932312 -0.8428092002868652 -0.5446478724479675 0.5254182815551758 0.14829367399215698 0.9582751393318176 -0.48360249400138855 -0.3782227635383606 0.8424695730209351 -0.9976290464401245 -0.9305392503738403 -0.41923701763153076 -0.012544169090688229 0.156739741563797 0.012769616208970547 -0.26843270659446716 -0.8953796625137329 0.20917712152004242 -0.9912516474723816 0.921676754951477 0.8447271585464478 -0.4566822052001953 0.6293162107467651 -0.10567216575145721 0.09374704957008362 0.711970865726471 -0.9324489235877991 -0.959712564945221 0.9695629477500916 0.7486410140991211 -0.9992644786834717 0.0009681728552095592 0.49360570311546326 -0.8166959285736084 -0.991202712059021 -0.681251049041748 0.21945315599441528 0.9081464409828186 0.14210286736488342 0.12018608301877975 0.5607103109359741 -0.9890189170837402 0.9124644994735718 0.03937431052327156 0.5994923114776611 0.9442055225372314 0.18213605880737305 0.7976791858673096 0.40158647298812866 -0.3530034124851227 -0.9428473711013794 0.320056289434433 0.295796275138855 0.21220320463180542 0.8437003493309021 0.0015410433989018202 -0.9948502779006958 -0.9998620748519897 -0.32205578684806824 0.04696835204958916 0.6685200929641724 -0.9769102931022644 0.7003451585769653 -0.678346574306488 -0.6842209100723267 0.7392256259918213 0.8466584086418152 -0.09104838967323303 -0.9698086977005005 -0.3553086817264557 -0.14689183235168457 -0.9999979138374329 0.25570711493492126 0.4162403345108032 -0.9999741315841675 -0.5645678043365479 -0.7554400563240051 0.29122209548950195 0.841404139995575 0.9503129720687866 -0.8096387982368469 -0.08889972418546677 -0.27386370301246643 -0.7869387865066528 -0.21777692437171936 -0.4651670455932617 0.7273702025413513 0.7361825704574585 -0.33330094814300537 -0.9545770883560181 -0.7870736718177795 0.34222373366355896 0.9032168388366699 -0.9031824469566345 0.922326922416687 0.44009244441986084 0.589470386505127 0.4006035625934601 -0.5470263361930847 0.705573320388794 0.1317070722579956 0.18768435716629028 -0.6138356924057007 -0.2860749661922455 0.9350007176399231 -0.9690470695495605 0.3349202871322632 0.9999955892562866 -0.5764836668968201 -0.2922370135784149 -0.1328992247581482 -0.8435767292976379 0.9581644535064697 0.5723854899406433 0.4993044137954712 0.8593176007270813 0.8138836622238159 -0.6870840191841125 0.6742106080055237 -0.07549509406089783 -0.9857076406478882 -0.6968787908554077 -0.6881418228149414 -0.008866294287145138 0.6416144967079163 -0.30477094650268555 0.9993024468421936 0.17465351521968842 0.1218600794672966 0.565860390663147 0.37779858708381653 -0.9964986443519592 -0.8114742040634155 -0.9200358986854553 0.9812940955162048 0.1505051851272583 0.31057941913604736 0.9262369871139526 0.9263561964035034 0.6310976147651672 0.5855847001075745 0.1814797967672348 -0.19257093966007233 -0.888957142829895 -0.26799914240837097 0.34537240862846375 0.7395550012588501 -0.7709877490997314 -0.9996141791343689 -0.6747870445251465 0.9310287237167358 0.9924641847610474 -0.9080540537834167 0.16740719974040985 -0.6673338413238525 0.9558010101318359 0.8411006927490234 -0.5819200277328491 0.4337579309940338 0.8094193339347839 0.8890191912651062 -0.6253347396850586 -0.9939602017402649 -0.11074978113174438 0.9993400573730469 0.05683848261833191 0.271261602640152 -0.8530968427658081 0.10610270500183105 0.046886276453733444 0.3823574483394623 -0.8085089921951294 0.4194796681404114 -0.43031635880470276 -0.9999825358390808 0.7591289281845093 0.8349006772041321 -0.9385051727294922 0.44208481907844543 -0.9389144778251648 -0.18419739603996277 0.4949185252189636 -0.9488257169723511 0.06615981459617615 -0.9511430263519287 -0.8538532257080078 -0.2850521206855774 -0.9147129654884338 -0.11733616143465042 -0.5880653262138367 0.400350421667099 -0.7046691179275513 -0.927417516708374 0.7585986852645874 0.06886781007051468 -0.4107540249824524 -0.9538805484771729 -0.9665305614471436 0.6568830013275146 -0.9477615356445312 0.5415265560150146 0.0485813170671463 -0.47218579053878784 -0.9319704174995422 -0.522771954536438 -0.1831921488046646 -0.8124995827674866 -0.7902088761329651 0.5472965240478516 0.9090238809585571 -0.9753492474555969 0.7577872276306152 0.804438054561615 -0.9855633974075317 0.5466248393058777 0.29196402430534363 -0.17334449291229248 -0.677698016166687 -0.6165058016777039 -0.18742027878761292 0.9968538880348206 -0.27589672803878784 -0.9985958933830261 -0.699254035949707 0.5278486013412476 0.6157553791999817 0.8563226461410522 0.9392122626304626 -0.6770635843276978 0.5359516739845276 -0.15162968635559082 -0.6692591309547424 0.11615140736103058 0.9535456895828247 0.39289161562919617 0.8668711185455322 0.8570224642753601 0.6573432683944702 0.7933343052864075 -0.6742348670959473 -0.9941197037696838 -0.1421027034521103 0.6552557945251465 0.28649717569351196 0.9999691843986511 0.9999357461929321 -0.21423092484474182 -0.8572723865509033 -0.9467157125473022 -0.4988013207912445 0.05062434449791908 0.9998016357421875 0.8949066996574402 -0.5397440791130066 -0.7687239050865173 -0.9295721054077148 0.8672899007797241 0.8968647718429565 0.3609580993652344 -0.8039904832839966 -0.5393902659416199 -0.29361194372177124 0.9285497069358826 -0.5500197410583496 -0.26956379413604736 0.8468214273452759 0.5545109510421753 -0.7601782083511353 0.8072186708450317 -0.7937279939651489 -0.7693913578987122 -0.8461584448814392 0.9992853999137878 -0.9134976863861084 0.1379109025001526 0.9319933652877808 -0.3417957127094269 0.7673779726028442 0.9735485315322876 0.7903128862380981 0.14975348114967346 -0.8625637292861938 -0.4166991710662842 0.9170993566513062 0.9829961657524109 0.839741587638855 0.5538949966430664 0.8606570363044739 0.9822486639022827 -0.9587833881378174 -0.8662456274032593 0.3948107361793518 0.8752477169036865 -0.9839447140693665 0.948847770690918 0.4600456655025482 -0.4787324368953705 0.4595402479171753 0.8566659092903137 0.3381724953651428 -0.9854671359062195 0.5484231114387512 -0.948381245136261 -0.5174341201782227 -0.08140261471271515 0.5154271125793457 -0.9999244213104248 0.11100739985704422 -0.9462094902992249 0.186512291431427 0.9293719530105591 0.8924813866615295 -0.828249990940094 0.7554921507835388 -0.8861995339393616 -0.7886381149291992 0.9317048788070679 -0.9854114651679993 -0.9879768490791321 -0.4291635751724243 0.39645037055015564 -0.889588475227356 0.04584860801696777 0.782598078250885 0.9999837875366211 -0.6569949388504028 0.8434237837791443 0.31243735551834106 -0.3282431364059448 -0.9132001399993896 0.42198705673217773 -0.8079311847686768 -0.1451597362756729 -0.9998031258583069 0.5344711542129517
-0.9819943308830261 -0.6087946891784668 0.859183132648468 -0.983273446559906 0.797048807144165 0.9103080630302429 -0.6219169497489929 -0.9926773309707642 -0.26852813363075256 -0.6657518148422241 -0.5957551598548889 0.9344533085823059 -0.8691120743751526 0.7599462866783142 -0.2131129503250122 -0.9967828392982483 0.6892639398574829 0.7288747429847717 0.06793728470802307 -0.7881258726119995 -0.8359565734863281 -0.9131909608840942 0.6000761985778809 -0.0065151602029800415 0.9278653860092163 0.8056466579437256 0.5456365942955017 -0.8493762016296387 -0.9396949410438538 0.7910171151161194 0.996759295463562 0.9122201800346375 -0.9977548122406006 -0.7371652126312256 -0.6027944684028625 -0.9238994121551514 -0.8385819792747498 -0.9367251396179199 0.32676276564598083 0.035066332668066025 -0.20687052607536316 0.19228293001651764 -0.9999608397483826 0.08867006003856659 -0.4440855085849762 0.2142147272825241 -0.8572258949279785 0.9749176502227783 0.9366978406906128 -0.9565855264663696 -0.9095792770385742 0.4492352604866028 0.9999999403953552 -0.9998767971992493 0.40293046832084656 0.9079778790473938 -0.8540505766868591 -0.9984763264656067 0.7886567711830139 0.9635951519012451 -0.9843449592590332 -0.9999982714653015 0.9999273419380188 -0.8491008281707764 0.7497864365577698 -0.5151928663253784 0.7619741559028625 0.7340207099914551 -0.9525341987609863 0.8689636588096619 0.997380793094635 0.3616555631160736 0.7831524014472961 -0.9730858206748962 0.1503751277923584 0.5584217309951782 0.07499183714389801 0.9999998807907104 0.8942924737930298 0.7514846324920654 -0.82839435338974 -0.8248488306999207 -0.949485719203949 -0.3223923444747925 0.9999998211860657 0.6278060674667358 -0.9919754266738892 -0.18053101003170013 -0.7143975496292114 0.85383141040802 -0.8225189447402954 -0.5715323686599731 0.030773065984249115 -0.6741209030151367 -0.7051780223846436 0.7562412619590759 -0.35521170496940613 0.9894410967826843 0.7684874534606934 0.9902123808860779 0.20551788806915283 0.8905207514762878 -0.6565403938293457 0.9528544545173645 -0.7037167549133301 0.4292162358760834 -0.7393039464950562 -0.9558682441711426 0.46497368812561035 -0.28335052728652954 0.8229628801345825 0.5570942163467407 -0.7593809366226196 0.9999527931213379 0.3540444076061249 0.6625353097915649 0.7282856106758118 0.10301348567008972 0.582134485244751 0.5873897075653076 0.9546599388122559 0.8536266088485718 -0.8694678544998169 0.9046027064323425 0.6659797430038452 0.06074392795562744 -0.853825032711029 -0.4943075478076935 -0.9357261061668396 0.6813305616378784 0.27289673686027527 0.643314778804779 0.35562923550605774 -0.43827661871910095 -0.2856452167034149 -0.9451760053634644 -0.867946207523346 -0.7813084125518799 0.954599142074585 0.9250571727752686 0.893010139465332 0.9999504685401917 -0.9983440637588501 -0.7652709484100342 -0.5277147889137268 -0.04516422003507614 0.512884259223938 0.990243673324585 -0.043279070407152176 0.9857334494590759 -0.15612228214740753 0.9998961687088013 0.23287911713123322 -0.6661590337753296 -0.6555914282798767 0.8792271614074707 -0.9375394582748413 -0.9984673261642456 0.9980185031890869 0.09783867746591568 0.3505319058895111 -0.6787382960319519 0.4313735067844391 0.9076853394508362 -0.799612283706665 -0.9816087484359741 0.636951208114624 0.8842228651046753 0.8586099147796631 -0.348893404006958 0.9687497615814209 0.3831712305545807 0.9643605351448059 -0.1887379139661789 0.243865966796875 0.4226577579975128 0.967470645904541 -0.6135863065719604 0.7630619406700134 -0.9999999403953552 -0.5851907730102539 -0.47057369351387024 -0.0379830040037632 -0.6299744248390198 -0.12214747071266174 0.4622882604598999 -0.9683384299278259 0.6338699460029602 0.8815500140190125 -0.7670792937278748 -0.6275978088378906 -0.814092218875885 -0.6768944263458252 -0.8783774375915527 0.08631603419780731 -0.7415952682495117 -0.7235586643218994 0.987977921962738 -0.4075098931789398 0.12527374923229218 0.09420106559991837 -0.9389654994010925 0.9819018244743347 0.90291428565979 -0.978052020072937 -0.5378007292747498 0.8380855917930603 -0.505064845085144 -0.9875465631484985 0.42349258065223694 -0.7062909603118896 0.3350772559642792 0.0757780373096466 -0.49496886134147644 -0.8128948211669922 0.6145254373550415 -0.7016576528549194 -0.9989475607872009 0.9567514657974243 -0.22723254561424255 -0.9988652467727661 0.3347572982311249 -0.9092339873313904 0.6748671531677246 -0.6755574941635132 -0.7603794932365417 0.918760359287262 0.88441002368927 0.9730527400970459 0.9944483041763306 0.45319366455078125 -0.6379220485687256 0.8810961246490479 -0.27520883083343506 -0.6553760766983032 0.8780144453048706 -0.8394063115119934 -0.5460824370384216 0.9782527089118958 0.8297527432441711 0.942881166934967 0.9921565055847168 0.8438965082168579 -0.8361127972602844 0.8904916048049927 -0.946161687374115 0.9819004535675049 -0.9488556385040283 -0.6201429963111877 0.24810275435447693 0.8849233388900757 -0.36257684230804443 0.5672297477722168 -0.8556897640228271 0.4082223176956177 -0.07340965420007706 -0.31691813468933105 -0.7572690844535828 -0.6771864891052246 0.954736053943634 0.5281695127487183 0.4319961369037628 0.015294245444238186 -0.5378773212432861 0.7087184190750122 -0.5424768924713135 -0.9883925914764404 0.862438440322876 -0.9742833971977234 0.7273039817810059 0.1882435381412506 -0.8217709064483643 0.9407497644424438 0.9984374046325684 0.9994364380836487 0.8955920338630676 -0.9778535962104797 0.9988973736763 -0.9334495663642883 -0.935737133026123 -0.5183208584785461 -0.22772003710269928 -0.9844503998756409 0.9680661559104919 -0.581834077835083 -0.7029778957366943 -0.9926983714103699 -0.9981753826141357 0.6097074747085571 -0.898431122303009 -0.9144176244735718 0.47491103410720825 0.5979466438293457 0.6574770212173462 0.39919155836105347 0.034868739545345306 -0.9962570667266846 -0.07528559863567352 -0.9969465732574463 0.2971994876861572 0.38598349690437317 -0.980704665184021 -0.9401220083236694 0.09267162531614304 -0.729860782623291 -0.9556913375854492 -0.40225857496261597 0.5909700393676758 -0.7526032328605652 -0.14056478440761566 -0.7802788615226746 -0.7693593502044678 -0.06684950739145279 0.058800291270017624 0.12619836628437042 -0.9099240303039551 0.29843267798423767 0.31023168563842773 -0.9577066898345947 -0.5577014684677124 -0.7229357957839966 0.7381565570831299 -0.4920915365219116 -0.5550907850265503 0.9982325434684753 0.8825686573982239 0.8581408262252808 -0.3185787796974182 0.9954338669776917 -0.1011701449751854 -0.9269765615463257 -0.4451010823249817 0.9957761764526367 0.6737316846847534 0.4840974509716034 -0.04972267150878906 -0.06339619308710098 0.3991025984287262 -0.9526911377906799 0.1748419851064682 0.17948698997497559 0.9819663763046265 0.36360272765159607 0.9344719648361206 -0.9348444938659668 -0.9234305620193481 0.3052522838115692 0.9873104095458984 -0.82667076587677 0.39375388622283936 -0.5852971076965332 0.249672994017601 -0.7361690402030945 0.35203438997268677 0.22623120248317719 0.49832257628440857 0.9898509979248047 -0.9025830030441284 0.38795411586761475 -0.9759591221809387 -0.2554302215576172 -0.9302499294281006 -0.49152183532714844 -0.9506711363792419 -0.9690101742744446 0.925317108631134 0.3077224791049957 -0.3837798833847046 -0.4211290776729584 0.8614925742149353 -0.5740160942077637 -0.06475133448839188 -0.5896559953689575 -0.025084098801016808 0.9398859143257141 0.5929712653160095 -0.7511130571365356 -0.4376617670059204 0.48605307936668396 -0.11448554694652557 0.5459489822387695 -0.9488306641578674 0.9499348402023315 0.12113580852746964 -0.8286058902740479 -0.04292665421962738 -0.45295804738998413 0.9999579191207886 -0.6318700313568115 -0.7948052287101746 -0.8268913626670837 0.8125172853469849 0.12225548923015594 0.18208126723766327 0.03428712114691734 0.8976204991340637 -0.5480687618255615 0.8544545769691467 0.19493137300014496 0.9847245812416077 -0.8342499732971191 -0.9950253963470459 0.820842981338501 0.9890046119689941 -0.6833829879760742 0.7716840505599976 -0.7151999473571777 0.5704295635223389 0.7766841053962708 -0.5384132862091064 0.626134991645813 0.4388386309146881 -0.9902383089065552 0.8207403421401978 0.6232967376708984 0.9996857047080994 0.16376332938671112 -0.7243064045906067 -0.8092244863510132 -0.8027898073196411 -0.29515379667282104 -0.7604160308837891 0.4923965036869049 -0.3765600323677063 0.9737321734428406 -0.8148157596588135 0.9982852935791016 -0.26119089126586914 0.2971683442592621 0.7580579519271851 -0.7429221868515015 0.9017102718353271 -0.460612416267395 -0.5842317342758179 -0.9971014857292175 -0.8746302127838135 0.5100994110107422 0.0977487564086914 0.9993090033531189 -0.9596915245056152 -0.5116672515869141 0.8409489989280701 0.5358712673187256 0.9698880314826965 0.861503005027771 0.493622750043869 -0.9893440008163452 -0.7910298109054565 0.9811879992485046 -0.6464530229568481 -0.9583016633987427 -0.9585335850715637 0.9702970385551453 -0.20004919171333313 -0.0910387709736824 0.4089479148387909 0.9403504133224487 -0.9980465173721313 0.30500710010528564 -0.7519183158874512 0.9372002482414246 0.7513259053230286 0.6901008486747742 -0.998539388179779 -0.1958625763654709 0.25331056118011475 -0.8442347645759583 -0.8999717831611633 -0.8734889626502991 -0.7683739066123962 0.9683176875114441 0.9916722178459167 0.9203127026557922 -0.17964747548103333 -0.7709736824035645 -0.36164751648902893 0.2739790380001068 0.9800567030906677 0.954170823097229 0.8999356031417847 -0.8733585476875305 0.4883716404438019 0.6612241268157959 0.038225915282964706 0.8059022426605225 0.06904290616512299 -0.985135018825531 0.7773241400718689 -0.8753491640090942 -0.7917454838752747 -0.755567193031311 0.7694631814956665 0.3701954483985901 -0.7279458045959473 -0.8330774903297424 0.958429217338562 -0.8145005702972412 0.9861174821853638 0.8976685404777527 -0.8748409748077393 -0.6493749618530273 -0.2513003945350647 -0.4269128143787384 0.7066437005996704 -0.9999995231628418 -0.70537269115448 -0.04648031294345856 -0.9999927282333374 -0.6674887537956238 0.586550235748291 0.8232792615890503 -0.8828374147415161 -0.09488964080810547 0.8574788570404053 -0.00352774397470057 0.9783908128738403 -0.5701379776000977 0.23341715335845947 0.974222719669342 -0.9780635833740234 -0.34847769141197205 -0.5881773829460144 -0.6304804682731628 -0.9340027570724487 0.9963149428367615 0.10157723724842072 -0.9020417332649231 0.4138144850730896 0.9644505977630615 0.38842421770095825 0.9716229438781738 0.9970515966415405 0.2928294837474823 -0.47330382466316223 -0.37437283992767334 -0.9986504912376404 -0.3523704707622528 0.9923434853553772 0.8218880891799927 0.8088809251785278 0.9999997019767761 -0.863376259803772 0.8926507830619812 0.9166349768638611 0.2018546164035797 0.9999566078186035 -0.9963250756263733 0.3382048010826111 0.4684171676635742 -0.5341031551361084 0.7114289402961731 0.03140635788440704 0.76720130443573 -0.9873952865600586 -0.8574717044830322 0.8825310468673706 -0.8675215244293213 -0.042591679841279984 0.49222004413604736 -0.7975814938545227 -0.8426669239997864 -0.4812050461769104 0.05566604807972908 0.9097651243209839 -0.8095917701721191 -0.14901617169380188 0.9700632691383362 0.5638502836227417 -0.6842082738876343 -0.879408597946167 0.8868293166160583 -0.8773154020309448 -0.9904080033302307 0.032330162823200226 0.9976377487182617 -0.48396822810173035 -0.7046958804130554 -0.9511998891830444 -0.061670154333114624 0.15263663232326508 0.1651269793510437 -0.8812402486801147 -0.36621519923210144 0.9846217036247253 0.9992508888244629 -0.9704905152320862 -0.9452013969421387 -0.8989675641059875 0.7763258218765259 -0.8981406092643738 -0.6640944480895996 -0.31057217717170715 0.9146919846534729 -0.38823989033699036 -0.20877791941165924 0.6885253190994263 0.9947206377983093 0.91923987865448 0.9641292691230774 0.8738672137260437 0.9204655885696411 0.41640913486480713 0.40938255190849304 0.9687093496322632 -0.25279274582862854 0.5886802077293396 -0.2316686064004898 -0.9997870326042175 -0.9790729880332947 0.7721111178398132 -0.756446897983551 0.9737720489501953 -0.9427914023399353 -0.515524685382843 0.4596113860607147 0.9832396507263184 -0.8951584696769714 -0.9172690510749817 -0.7072581648826599 0.9486494660377502 0.040974706411361694 0.31997066736221313 0.9553179740905762 0.7674952149391174 -0.991145670413971 -0.9990615844726562 -0.7100650072097778 -0.46685856580734253 -0.32026442885398865 -0.18860122561454773 -0.3872559368610382 0.9450666904449463 -0.7113939523696899 0.9464039206504822 0.9979666471481323 0.11555620282888412 -0.7539344429969788 -0.9660058617591858 -0.9920265674591064 0.9990989565849304 0.08057250827550888 0.7502471208572388 -0.23049816489219666 0.9448494911193848 0.7503770589828491 0.7927546501159668 -0.9789159893989563 0.18420849740505219 0.9783790111541748 -0.9354249835014343 -0.5499496459960938 -0.7483214139938354 0.8807390928268433 -0.919266402721405 -0.03329405188560486 -0.996189296245575 0.840603232383728 0.686627984046936 0.4402451515197754 -0.3778637647628784 -0.887471079826355 0.9825628399848938 -0.8839284777641296 -0.9940012097358704 -0.998353123664856 0.850349485874176 -0.978069007396698 -0.9636051058769226 0.8338729739189148 -0.754462718963623 -0.8965480923652649 -0.4594397246837616 -0.7738823294639587 -0.9944971203804016 0.4918370544910431 0.9489733576774597 0.9428050518035889 0.9876422882080078 0.9999781250953674 -0.4578966796398163 0.9279544353485107 -0.02699955552816391 0.05634092912077904 -0.2890649735927582 0.998075544834137 0.8768430352210999 -0.9690365791320801 -0.994491457939148 -0.7456222772598267 0.37161698937416077 0.7211840748786926 0.4620376527309418 -0.9958587288856506 -0.9911951422691345 0.8173792958259583 0.8550256490707397 0.3557003140449524 0.8498564958572388 0.9803568720817566 0.5277930498123169 -0.45829617977142334 0.809897780418396 -0.65177321434021 -0.9843565225601196 -0.10284754633903503 0.9962646961212158 -0.9641441106796265 0.975204348564148 0.5943067669868469 0.9935153126716614 -0.8324995040893555 0.5882806777954102 0.9216038584709167 -0.798406720161438 0.9240990877151489 0.8008762001991272 0.8621461987495422 0.8193068504333496 -0.08866249024868011 0.11604064702987671 0.9442986845970154 0.9618589878082275 0.970311164855957 -0.783947229385376 -0.7088874578475952 -0.24785099923610687 -0.81263267993927 -0.22875533998012543 0.9564161896705627 -0.24682269990444183 0.6770049333572388 0.8059893250465393 -0.8937212228775024 -0.988437294960022 0.8103142976760864 0.21763023734092712 0.8419808149337769 0.4316667914390564 0.8081092834472656 -0.34348416328430176 -0.07934466749429703 -0.9632827043533325 -0.06726188212633133 -0.7332714796066284 -0.4111296534538269 -0.22462888062000275 0.7460122108459473 -0.7719792127609253 0.3137677013874054 -0.8766632676124573 -0.9982799291610718 -0.9999551177024841 0.8882688283920288 0.20318114757537842 0.7359954118728638 0.0865168422460556 -0.9975415468215942 0.9999960660934448 0.9531588554382324 0.8884801864624023 0.9692590236663818 -0.9569952487945557 0.3904445469379425 -0.9831523299217224 -0.9992799758911133 -0.3996957540512085 -0.9999988675117493 0.5490082502365112
0.2941231429576874 0.9417648911476135 0.18034711480140686 -0.7838178873062134 -0.9864234924316406 -0.9378126263618469 0.8258167505264282 0.2843712270259857 -0.9943631291389465 0.7896615862846375 0.9305263161659241 0.24941758811473846 -0.9768286943435669 -0.6869116425514221 0.7627158164978027 0.44521698355674744 -0.20851215720176697 0.18844902515411377 0.2345835268497467 -0.6460893154144287 -0.9984443187713623 -0.5454869270324707 -0.036080654710531235 0.8830222487449646 0.9415892362594604 0.5764482021331787 -0.9182308912277222 0.275160014629364 0.9869658946990967 -0.1885753720998764 0.8327422142028809 0.8072424530982971 0.44112902879714966 -0.9378207325935364 0.9628525972366333 -0.9863554239273071 -0.9478052854537964 -0.7176017761230469 0.9875723123550415 0.8348251581192017 -0.8510919809341431 0.9011352062225342 -0.9380925893783569 0.9057415127754211 0.7022466659545898 -0.5166741013526917 -0.41077157855033875 0.9280776977539062 0.9002009630203247 0.19051265716552734 -0.9565770030021667 -0.07839642465114594 1.0 -0.9999995231628418 0.991786539554596 0.6017481088638306 -0.08449025452136993 -0.9042455554008484 -0.2302260398864746 0.3165512979030609 -0.954978346824646 -0.9999974966049194 0.9999958872795105 -0.012185919098556042 0.443025141954422 -0.2857276499271393 -0.5734269618988037 0.9040958285331726 0.975525438785553 0.31302177906036377 -0.8651318550109863 0.7604998350143433 0.8531094193458557 -0.9520543813705444 -0.8950911164283752 -0.9227620363235474 -0.9746671915054321 0.9999988079071045 0.999847948551178 0.7352158427238464 -0.9224191904067993 -0.9980810880661011 -0.8886569738388062 -0.9348877668380737 0.9999986290931702 -0.9447373747825623 0.7324023842811584 0.8816617727279663 0.2959931492805481 0.9864057898521423 0.9822344183921814 0.4242340326309204 -0.5654476881027222 0.13883627951145172 -0.966386079788208 0.6334303617477417 0.954526424407959 0.9572066068649292 0.4724254906177521 -0.6087014675140381 0.9805004596710205 -0.872924268245697 -0.8794035315513611 0.9466924071311951 -0.9553242325782776 -0.9894970655441284 -0.791699230670929 0.8030877709388733 -0.6709434986114502 0.8620471954345703 0.495980829000473 0.2938247621059418 0.3956131041049957 0.9994227290153503 0.9928016662597656 -0.7986979484558105 0.5579723715782166 -0.2219805270433426 -0.2518814206123352 -0.9392572641372681 0.48410764336586 0.7123992443084717 0.45866864919662476 -0.37170863151550293 0.10359622538089752 0.7693184018135071 -0.9855445027351379 -0.3545401990413666 -0.7555093169212341 -0.881708025932312 0.2328004539012909 -0.7854822874069214 0.9179819226264954 0.9404168725013733 -0.8507998585700989 -0.9908145666122437 0.8926056623458862 -0.8047842383384705 -0.41276925802230835 0.6085608601570129 0.19004660844802856 0.9999604225158691 -0.9347096681594849 -0.9600505232810974 -0.03265229985117912 -0.2413599044084549 -0.05912184715270996 0.8247655630111694 0.3170086145401001 0.8649889826774597 -0.27077817916870117 0.9999970197677612 -0.7878894209861755 -0.8281303644180298 -0.32574141025543213 0.8537264466285706 -0.4518641531467438 0.6470291018486023 0.31537967920303345 -0.8636688590049744 0.29256483912467957 -0.1938198357820511 0.34507858753204346 -0.49519988894462585 0.6419654488563538 -0.8874695301055908 -0.8779069185256958 0.10109046846628189 0.1868584007024765 0.34924229979515076 -0.6216521263122559 0.9940370321273804 0.80409836769104 0.9263572692871094 -0.9806784391403198 -0.5938369035720825 0.9308153390884399 -0.8801698684692383 0.1544598639011383 -1.0 -0.9535186290740967 0.49378517270088196 -0.9305201768875122 -0.9723935127258301 0.027719784528017044 0.22406157851219177 0.5773910284042358 0.8430540561676025 0.893265962600708 -0.663015604019165 0.9616007804870605 0.06261181831359863 0.4405698776245117 0.791255533695221 0.9078362584114075 -0.377646803855896 -0.9049851894378662 0.9352447986602783 0.19723239541053772 -0.38378190994262695 0.8619516491889954 0.5164735317230225 -0.9962881803512573 0.06919800490140915 -0.2885485589504242 -0.2848009467124939 0.32074466347694397 0.5135598182678223 0.06807306408882141 -0.7691582441329956 -0.39536765217781067 0.9549834132194519 -0.44120702147483826 -0.9879766702651978 -0.5853581428527832 0.914124608039856 -0.863673746585846 -0.9462234377861023 0.5017303228378296 0.6320328712463379 -0.7953612208366394 -0.1950751394033432 0.18296414613723755 -0.9913934469223022 -0.5373122692108154 0.9843475222587585 0.10855113714933395 0.947052538394928 -0.057096779346466064 0.7020364999771118 0.46614953875541687 -0.4916359782218933 -0.8831270933151245 0.9235716462135315 -0.07596702873706818 0.22829915583133698 0.9381342530250549 0.5870418548583984 -0.854494571685791 -0.4798763394355774 -0.4946877360343933 0.9711129069328308 0.47455957531929016 0.9847931265830994 0.9934849143028259 0.9422540068626404 0.9899693727493286 -0.9994568824768066 -0.7684197425842285 0.838047444820404 0.9842079877853394 0.7658769488334656 0.9784794449806213 -0.9864665269851685 0.013364318758249283 -0.9009328484535217 0.40978702902793884 -0.8763516545295715 -0.9726290106773376 0.9857415556907654 0.928224503993988 0.24851150810718536 -0.9463648796081543 0.5945342779159546 0.011351298540830612 0.1273861974477768 -0.6209009289741516 0.5709378719329834 -0.20172390341758728 0.8449498414993286 -0.08766390383243561 -0.02623402327299118 -0.9994930624961853 0.999990701675415 0.9949731230735779 0.03213176131248474 -0.8725185394287109 0.9005549550056458 -0.6975206136703491 0.17600107192993164 -0.3889962434768677 0.9856216907501221 -0.579156756401062 0.5045604705810547 -0.8212713003158569 -0.9888656139373779 -0.9514374732971191 -0.9587780237197876 -0.9471371173858643 -0.4246289134025574 0.5169318318367004 -0.7888304591178894 0.8502781391143799 0.7514036297798157 0.9625710248947144 -0.9977539777755737 -0.8739041090011597 0.808371901512146 -0.17620022594928741 -0.11422956734895706 0.2519405484199524 0.385785847902298 -0.7592517733573914 -0.5514622926712036 0.24025246500968933 0.8076422214508057 0.14549152553081512 0.9522901177406311 -0.19110161066055298 -0.7646772265434265 -0.08039364218711853 -0.8806523084640503 -0.8517820239067078 -0.7897356748580933 -0.2881322503089905 0.9388256669044495 -0.5552338361740112 0.1058807373046875 0.7038215398788452 0.12496073544025421 0.761786699295044 0.9678831100463867 -0.2651195824146271 0.32169637084007263 0.8248852491378784 -0.3673244118690491 0.4645076394081116 -0.108807772397995 0.9113019704818726 0.4737950563430786 0.22759538888931274 0.6638040542602539 0.9752286076545715 -0.889775276184082 -0.7643176317214966 -0.9419150352478027 0.5560631155967712 0.7575507760047913 -0.7166141271591187 0.8185102939605713 -0.1439039260149002 0.7214473485946655 0.9771601557731628 -0.770378828048706 -0.9584628939628601 0.8976219296455383 -0.5084915161132812 -0.9862747192382812 0.7518492937088013 -0.5794402956962585 0.29771679639816284 0.4049144685268402 -0.21574266254901886 0.9352385997772217 0.04103691503405571 0.7523030638694763 -0.727803111076355 -0.5048920512199402 -0.3473367691040039 0.9864460229873657 -0.7545449733734131 -0.8649749755859375 0.34192317724227905 -0.9969120025634766 0.9969592690467834 0.958519697189331 -0.9616337418556213 0.6167271137237549 -0.712746262550354 0.8499452471733093 -0.20792098343372345 0.27501431107521057 -0.8428483009338379 0.5505547523498535 -0.8319393396377563 0.35804975032806396 0.4846612513065338 0.4000539183616638 -0.7557128667831421 -0.5886823534965515 -0.680801272392273 0.9840302467346191 -0.3764522969722748 -0.28730183839797974 -0.9098669290542603 -0.9835590720176697 0.056271813809871674 0.9999989867210388 -0.9854345321655273 -0.5380675196647644 0.19780682027339935 0.8241158723831177 -0.8101099133491516 0.5202009677886963 0.9823956489562988 0.08595316857099533 -0.45300960540771484 -0.6554263830184937 -0.9881077408790588 0.9987761378288269 0.6946462392807007 0.9803464412689209 0.9769893884658813 -0.06703174859285355 0.05774905905127525 0.7125744819641113 -0.4358384609222412 0.9580307602882385 -0.27399858832359314 -0.8354081511497498 0.8871289491653442 -0.23547537624835968 -0.5149954557418823 0.9796339869499207 -0.7783279418945312 0.99884432554245 0.23403172194957733 0.9902622699737549 0.985957682132721 0.6006615161895752 -0.7008138298988342 0.4461291432380676 -0.16990387439727783 0.660934329032898 0.26803892850875854 -0.1358318030834198 0.9995012283325195 0.1542963832616806 0.29843926429748535 0.7877322435379028 -0.9732252955436707 0.38655343651771545 -0.8877769708633423 0.0717533752322197 -0.28545132279396057 -0.5956921577453613 0.7021741271018982 -0.4102434515953064 0.9993207454681396 -0.8868755102157593 -0.4307684302330017 -0.19528384506702423 0.9830406308174133 0.6290225982666016 0.8554345369338989 -0.11391590535640717 -0.28695300221443176 -0.9267684817314148 0.9690308570861816 0.15801821649074554 -0.46650147438049316 0.5793250799179077 0.8655264377593994 0.828683614730835 0.6240943074226379 -0.6627134084701538 -0.9234969019889832 -0.9235276579856873 0.13826841115951538 0.7855452299118042 -0.14558355510234833 0.7064474821090698 0.42694491147994995 -0.8281552195549011 -0.9665374755859375 0.7777535915374756 -0.16691845655441284 0.08527275919914246 0.9240834712982178 0.9099249243736267 0.969174325466156 -0.15734827518463135 0.47287172079086304 -0.17381611466407776 0.9536782503128052 -0.9546228051185608 -0.9846850633621216 0.9986129403114319 0.6269676089286804 0.7031228542327881 0.999273419380188 0.7539530396461487 0.9241862297058105 0.045646823942661285 0.7673521637916565 0.21338139474391937 -0.5173183679580688 -0.9497919082641602 -0.7301309108734131 0.9759853482246399 -0.5990898013114929 0.6267902851104736 -0.10627495497465134 0.039520375430583954 -0.3870893716812134 0.9562870860099792 -0.9877520203590393 0.061572082340717316 0.2864767909049988 -0.12330148369073868 -0.8694430589675903 0.33326950669288635 -0.5260723829269409 -0.0242657121270895 -1.0 0.44580334424972534 -0.791846513748169 -0.9999284744262695 0.24456743896007538 -0.511303186416626 0.4661511480808258 0.6931791305541992 -0.9962255358695984 0.9895666241645813 0.1400449424982071 0.9548261761665344 0.6848708391189575 -0.9291096329689026 0.9985777735710144 -0.987131655216217 -0.6301409006118774 -0.9564224481582642 0.5386161804199219 0.3153403103351593 -0.2792358696460724 -0.9377968311309814 0.24639081954956055 0.07987359166145325 0.4932112395763397 -0.47367000579833984 0.5512610673904419 0.9982474446296692 -0.18226800858974457 -0.7380998134613037 0.6767478585243225 0.9490689039230347 -0.9449708461761475 0.689225971698761 -0.42754676938056946 -0.3619299530982971 0.9999995827674866 -0.9858531951904297 0.9526899456977844 0.003762193489819765 -0.658852219581604 0.9006423354148865 -0.05117965489625931 -0.8598503470420837 0.7279094457626343 -0.89795982837677 -0.6264833807945251 0.8318637013435364 0.49765655398368835 -0.9910193085670471 -0.4503428041934967 -0.9625239968299866 0.5545195937156677 -0.858494758605957 -0.9015396237373352 0.9999843239784241 0.3363568186759949 -0.9145820140838623 -0.993005633354187 0.4251539409160614 -0.8576251864433289 -0.4163610339164734 0.9919531941413879 -0.733979344367981 -0.8122689127922058 0.963901937007904 0.0832342654466629 -0.9752357602119446 0.9693867564201355 -0.9654273390769958 0.9885706901550293 0.526453971862793 0.42293426394462585 0.9710913896560669 -0.933231770992279 -0.8843258619308472 -0.36742693185806274 -0.7687548398971558 -0.9085416197776794 0.6236912608146667 0.9978145360946655 -0.9924187660217285 -0.6351922750473022 -0.0029837065376341343 -0.9476575255393982 -0.6142946481704712 0.9290221929550171 0.7875880599021912 0.621361494064331 0.5153423547744751 0.7650240063667297 0.8755903244018555 0.7709474563598633 -0.12595711648464203 0.995305597782135 -0.9226306676864624 -0.3353596329689026 0.10067184269428253 0.6796863079071045 -0.003958197310566902 0.4878568649291992 -0.33006420731544495 -0.008993148803710938 -0.9900591969490051 0.9330134987831116 -0.9938629269599915 -0.8222671747207642 0.8051787614822388 0.7275761961936951 -0.9676761627197266 -0.03127346560359001 -0.9851003885269165 0.4123259484767914 0.9513087868690491 0.9571298360824585 0.5373837947845459 -0.974649965763092 -0.17553170025348663 0.993395209312439 0.2840087115764618 0.3491339385509491 -0.771466851234436 -0.6247351169586182 0.0647655799984932 -0.13739976286888123 0.9997878670692444 -0.17455661296844482 0.9646780490875244 -0.16020846366882324 0.496258944272995 -0.6107081770896912 -0.9617633819580078 -0.8807752728462219 0.9506903290748596 -0.9758931398391724 -0.990232527256012 0.9080689549446106 0.21328942477703094 -0.8320362567901611 0.9090167284011841 0.814937174320221 -0.2769765555858612 -0.5802568793296814 -0.9103478789329529 -0.09045197069644928 -0.4916762411594391 0.8841406106948853 0.7102477550506592 -0.1548852026462555 -0.9962082505226135 -0.9466464519500732 -0.750174880027771 -0.8402763605117798 -0.7546045184135437 0.7186223864555359 0.29566189646720886 -0.7649415731430054 0.9840645790100098 -0.27388685941696167 0.2733015716075897 -0.9957600831985474 -0.3237324655056 0.40242430567741394 -0.9984753727912903 0.8913990259170532 -0.5332787036895752 -0.17912821471691132 -0.9325794577598572 0.6029490828514099 -0.8591446876525879 -0.13328735530376434 0.09732262045145035 -0.0018648892873898149 0.9999954104423523 0.9999271035194397 0.9346771240234375 0.9903432130813599 0.3521190285682678 0.31527018547058105 -0.6037003993988037 0.9221051931381226 -0.9834731817245483 -0.8095639944076538 0.9698671102523804 0.4678766429424286 -0.9316929578781128 0.5666738152503967 0.9972735643386841 -0.7353538274765015 -0.7431178092956543 0.49760040640830994 0.9467936754226685 -0.9142003655433655 0.6277437210083008 0.7287383079528809 -0.11814574152231216 -0.22651268541812897 0.4382725954055786 0.9916440844535828 0.35188642144203186 -0.19269314408302307 -0.811120867729187 -0.9230272173881531 -0.999381422996521 0.36997148394584656 0.9026758670806885 -0.6587700247764587 -0.5311373472213745 -0.9916341304779053 0.12936526536941528 0.7097424268722534 -0.7881748080253601 0.6634371280670166 -0.9294499754905701 0.07128726691007614 -0.9646162986755371 0.6684131622314453 0.9810345768928528 -0.4206107258796692 0.3172490894794464 -0.8532720804214478 -0.9014676809310913 0.9686335325241089 -0.7195867300033569 -0.6772724390029907 -0.1568593680858612 -0.595146656036377 0.8333296179771423 0.7292803525924683 0.9562914967536926 -0.4832039177417755 0.8453595042228699 0.8407657146453857 0.905857503414154 0.796329140663147 -0.9997722506523132 -0.8081425428390503 -0.211269348859787 0.3419640064239502 0.7964414358139038 -0.9986434578895569 0.3094451427459717 0.972170352935791 -0.7002102136611938 -0.7351416349411011 -0.015632502734661102 -0.23331069946289062 -0.9998897314071655 -0.9968687295913696 0.7878446578979492 0.8588045835494995 0.8434306383132935 -0.5086991786956787 0.9999831914901733 0.7946533560752869 -0.6831030249595642 0.28748956322669983 -0.18713440001010895 -0.5129774808883667 -0.985756516456604 0.47893375158309937 0.4575202763080597 -0.9995043277740479 -0.9336799383163452
-0.5424473285675049 -0.6542235612869263 0.8534773588180542 -0.8626450300216675 0.981153666973114 0.8918763399124146 -0.8385143876075745 -0.9734196662902832 0.044841669499874115 -0.5897011756896973 0.9052789211273193 -0.06045566871762276 -0.4221346974372864 -0.7234916687011719 -0.24933592975139618 -0.9716793894767761 0.9990417957305908 0.9397166967391968 -0.8250637054443359 -0.706929087638855 0.9886355996131897 -0.9936962723731995 0.9290345311164856 0.8283860683441162 0.2864586412906647 -0.9968518614768982 0.9966832399368286 -0.6894985437393188 0.6685117483139038 0.05799790471792221 0.9898056983947754 -0.9993687868118286 0.7202150821685791 0.11763262003660202 0.9676729440689087 -0.9007759690284729 0.784937858581543 -0.25221309065818787 -0.9643262624740601 -0.3606451749801636 0.9386203289031982 -0.4128645658493042 0.9977111220359802 0.9436334371566772 -0.5776652097702026 0.9898664355278015 0.03007814660668373 -0.9085773229598999 0.9977928400039673 -0.432509183883667 0.7517815828323364 -0.9811686873435974 0.9999988079071045 -0.9999832510948181 -0.9712976813316345 0.07132333517074585 -0.9065465927124023 -0.9890310764312744 -0.16426724195480347 -0.16325104236602783 0.41220393776893616 -0.9999935626983643 -0.4384971261024475 -0.2490760087966919 -0.8714478015899658 -0.9403195977210999 0.6777293682098389 0.987697184085846 -0.9805111289024353 0.9897050857543945 0.3764820992946625 -0.9444749355316162 0.8942221403121948 0.6810187697410583 0.6928499341011047 0.10390245169401169 0.8495879769325256 0.9999901652336121 0.14294657111167908 0.8186184167861938 0.9663469791412354 0.6030193567276001 -0.9869192242622375 -0.09748685359954834 0.9999995827674866 -0.7969289422035217 0.6494126319885254 -0.7322978973388672 -0.4109220802783966 -0.04881870374083519 -0.9823694229125977 -0.8629171848297119 0.24556207656860352 0.6939328908920288 0.9844695925712585 -0.9716308116912842 -0.9980396628379822 -0.7413840293884277 -0.9480299353599548 -0.9883617758750916 -0.3363858759403229 0.8795991539955139 0.8842755556106567 0.5079092383384705 -0.9970438480377197 -0.9875009655952454 -0.9195537567138672 0.984548807144165 0.6796532273292542 0.7748785018920898 -0.9831380844116211 -0.8109080791473389 -0.9901788830757141 0.949184000492096 -0.9066345691680908 -0.1350855529308319 -0.08083300292491913 -0.7097941637039185 -0.9987143874168396 0.9978277683258057 -0.6345762014389038 0.12592674791812897 -0.9703794717788696 0.46374017000198364 -0.6504827737808228 0.9912102818489075 0.8990898132324219 -0.3754090964794159 0.9875372052192688 0.39405959844589233 0.5924948453903198 0.5092290639877319 0.8582595586776733 0.7532297372817993 0.1276676058769226 0.12431703507900238 -0.9767467975616455 0.22530142962932587 0.9999839663505554 0.5234768390655518 -0.18344706296920776 0.9971884489059448 0.6943796277046204 0.8198920488357544 -0.7815725803375244 0.4107070565223694 -0.9617518782615662 0.9573325514793396 0.0012832016218453646 -0.9881818890571594 0.18516112864017487 0.999742865562439 0.9351254105567932 0.82779461145401 -0.37630611658096313 0.9999898076057434 0.6504104137420654 0.6919201612472534 0.995967447757721 -0.6190992593765259 -0.882090151309967 0.9919934272766113 0.9253573417663574 -0.6677879095077515 -0.9428871870040894 -0.9209138751029968 -0.9991527199745178 -0.9773187041282654 0.9583163857460022 0.4327608644962311 0.9908812642097473 -0.06885112822055817 -0.33207547664642334 -0.9820556640625 0.13549818098545074 -0.9895209670066833 -0.9867827296257019 -0.752505362033844 0.1957676112651825 -0.9999697208404541 0.8278456330299377 0.9993044137954712 0.9534973502159119 0.998548686504364 -0.7992485761642456 -0.8352560997009277 -0.9711016416549683 -0.06645087897777557 -0.793744683265686 0.8912412524223328 0.47688058018684387 -0.9618693590164185 0.9336537718772888 -0.3232685625553131 -0.13570265471935272 0.9899782538414001 0.9980865716934204 0.6381466388702393 0.7009053230285645 -0.9877298474311829 0.9308908581733704 -0.9021196365356445 0.7664312720298767 -0.4280371069908142 -0.9284768104553223 -0.7899312376976013 0.43690645694732666 0.8919738531112671 -0.8109422326087952 0.539269745349884 0.1999482661485672 -0.9998682737350464 -0.225492462515831 0.9927176237106323 0.9967712163925171 0.6371937990188599 -0.5582318305969238 -0.8376414775848389 0.937445878982544 -0.965948224067688 0.8187917470932007 0.19923511147499084 -0.19613593816757202 0.35233914852142334 -0.8396471738815308 -0.9877029061317444 0.2029401957988739 0.6119487285614014 0.9991239905357361 -0.9988061785697937 -0.8743462562561035 0.7167760133743286 0.9979044198989868 -0.8752163052558899 0.8466333150863647 -0.614558219909668 -0.6045899391174316 -0.9330644607543945 -0.6494351625442505 0.7548693418502808 0.2864763140678406 -0.9772359728813171 0.2953947186470032 0.9677399396896362 -0.894547700881958 0.2925786077976227 0.8498842120170593 0.9721589684486389 0.9118428826332092 0.5180705785751343 0.9821950197219849 -0.944776713848114 -0.989701509475708 0.9594348669052124 0.7260740995407104 0.6518310308456421 0.8675745129585266 -0.4311922788619995 0.9225252270698547 0.8904073238372803 0.6677221059799194 -0.41747888922691345 -0.8407541513442993 -0.10585100948810577 0.9434925317764282 0.883874773979187 -0.21932049095630646 0.7680319547653198 0.38906049728393555 -0.7108912467956543 0.7567257881164551 -0.9945929050445557 -0.4814539849758148 -0.006056502927094698 0.9998953342437744 -0.2521761655807495 0.7860371470451355 0.987524688243866 0.2590625286102295 -0.5231071710586548 0.5569134950637817 -0.7324727773666382 -0.976435661315918 -0.01846952736377716 -0.984243631362915 0.978855550289154 -0.981599748134613 0.9990885853767395 -0.9920715689659119 -0.19139452278614044 0.8313941955566406 0.8288268446922302 -0.950209379196167 -0.8746360540390015 0.9499374628067017 0.9815186858177185 -0.9005094170570374 -0.9971644878387451 0.18053676187992096 -0.7600315809249878 0.012917809188365936 -0.02663584239780903 0.6138715744018555 0.984285831451416 -0.853355884552002 -0.9796380400657654 0.9667790532112122 -0.27985328435897827 0.9924936294555664 0.9992493987083435 0.9951493144035339 -0.6883038878440857 -0.672966480255127 -0.9845194220542908 0.9305036067962646 -0.885358452796936 -0.8883954882621765 -0.08582047373056412 -0.678096354007721 -0.050563450902700424 0.873704731464386 0.6609541177749634 -0.8031955361366272 -0.3821437954902649 0.07158619910478592 -0.692893385887146 0.9509634375572205 0.9142793416976929 0.40391892194747925 0.96696537733078 0.994145929813385 -0.3113807737827301 -0.8932379484176636 -0.8852756023406982 -0.1462412029504776 0.12052392959594727 0.8138381242752075 0.8877543210983276 -0.6801784038543701 0.6051244735717773 0.8867040872573853 0.5615682601928711 -0.9867998361587524 0.7975692749023438 0.963912844657898 0.7648021578788757 -0.5873117446899414 -0.9527394771575928 -0.9058901071548462 -0.16729699075222015 -0.7255487442016602 -0.740958571434021 -0.8152764439582825 0.4062390625476837 0.9888427257537842 0.41501522064208984 0.9994173645973206 0.9155376553535461 0.9397020936012268 0.31138795614242554 0.9401882886886597 0.47634515166282654 -0.7059298157691956 -0.9074510335922241 0.46058639883995056 -0.5314998626708984 0.7035543918609619 0.8115494251251221 -0.5458451509475708 -0.848965048789978 -0.9909810423851013 -0.8991947770118713 -0.9076380729675293 -0.8286615610122681 0.6040023565292358 0.09391777962446213 0.7498325109481812 -0.7551029324531555 0.8477710485458374 0.9231322407722473 -0.9726585745811462 -0.37510108947753906 -0.8631353378295898 0.25354886054992676 0.20776180922985077 0.9317208528518677 0.9968391060829163 0.9971315860748291 0.9600093960762024 -0.8758602142333984 -0.8556288480758667 -0.8512424230575562 -0.9912359714508057 0.9430620074272156 -0.9077736735343933 0.2951391935348511 -0.9913200736045837 -0.9820615649223328 -0.7626196146011353 -0.9891430735588074 -0.9990029335021973 -0.9541650414466858 -0.8703165650367737 -0.5268619060516357 0.4880947768688202 -0.9983528852462769 0.13121464848518372 0.41237694025039673 -0.9694167971611023 0.952811062335968 0.5764601230621338 0.6955610513687134 0.8544780015945435 -0.4764275550842285 -0.7218429446220398 0.9988029599189758 0.8119656443595886 -0.9036626815795898 -0.9356501698493958 0.7569131255149841 0.14539329707622528 0.8713188767433167 -0.9174239039421082 -0.5246036648750305 -0.14936226606369019 -0.9994593262672424 -0.9634352922439575 0.9397545456886292 0.4222683310508728 -0.914982795715332 0.7418925762176514 -0.8609765768051147 -0.8559685945510864 -0.6046903133392334 -0.9823276996612549 0.08891797065734863 -0.5803908109664917 -0.1309165507555008 0.9992274045944214 0.7094466090202332 -0.6395182609558105 0.381255179643631 -0.00018115341663360596 -0.9966076016426086 0.011815698817372322 -0.40989258885383606 0.8989182114601135 0.3469913899898529 -0.9318786263465881 0.39856576919555664 -0.8581798672676086 -0.9863375425338745 -0.40126368403434753 0.2872498035430908 -0.064063660800457 0.9783943295478821 0.999654233455658 -0.933605432510376 0.7044805288314819 -0.9704009294509888 -0.9708255529403687 0.9981842041015625 0.3364351987838745 -0.9995886087417603 -0.3164173662662506 -0.7550404071807861 -0.9593132138252258 0.9691135883331299 0.9037312865257263 0.47822991013526917 0.9618768692016602 0.9966834187507629 0.6607629060745239 0.5400328636169434 -0.9999676942825317 -0.9980376362800598 0.915206253528595 -0.9935541749000549 0.948076605796814 -0.764202356338501 0.9644969701766968 0.6071227192878723 -0.886471152305603 -0.4379446506500244 -0.7231802344322205 -0.02021307311952114 0.6515175104141235 0.8717151284217834 -0.3603591322898865 -0.9972367286682129 -0.9979392886161804 0.9995270371437073 0.31402388215065 0.8641151189804077 -0.999968945980072 -0.9573761224746704 -0.7905573844909668 0.3401721715927124 0.49315500259399414 0.9184514284133911 0.7837188839912415 -0.5707123875617981 0.9395180344581604 0.25122880935668945 -0.9999958276748657 -0.3995135724544525 -0.05005773529410362 -0.9999604225158691 -0.5218110084533691 -0.8316022157669067 -0.5439488887786865 0.7090575695037842 0.8782322406768799 -0.9831904172897339 -0.8634610176086426 -0.34159156680107117 0.8470114469528198 -0.7912201285362244 -0.8577646613121033 0.8755990266799927 0.718772292137146 -0.5321105718612671 -0.21924203634262085 -0.7835743427276611 0.9904210567474365 0.9349312782287598 -0.9247592091560364 -0.99866783618927 0.9298154711723328 -0.2573598623275757 -0.2913314998149872 0.591780424118042 0.7436532378196716 0.7560627460479736 -0.48315566778182983 0.9390907883644104 -0.6521522402763367 0.8678378462791443 -0.784652590751648 -0.0889783576130867 0.9999903440475464 -0.7628026008605957 -0.913654625415802 -0.32906055450439453 -0.5271762013435364 0.9665658473968506 0.3087107241153717 0.16098082065582275 -0.6718098521232605 0.8286920189857483 0.3840508759021759 0.8855394721031189 0.3910716474056244 0.9956410527229309 -0.7937930226325989 -0.9645018577575684 -0.992195188999176 -0.6223686933517456 0.06361202895641327 0.9995920658111572 -0.44497114419937134 0.45615142583847046 0.9709680676460266 0.17930179834365845 -0.9982851147651672 -0.8285029530525208 -0.9044049978256226 0.38896554708480835 0.022345876321196556 0.9841583371162415 -0.8089691400527954 0.9641178846359253 -0.9893639087677002 0.43293407559394836 -0.36983832716941833 0.7599327564239502 0.17827436327934265 0.5112693309783936 0.4616501033306122 -0.13933713734149933 -0.46470949053764343 -0.9158459901809692 -0.9885824918746948 0.25206637382507324 0.9998376965522766 0.3227667212486267 0.5049262046813965 -0.7819505929946899 -0.2425856739282608 0.8566190600395203 -0.32919153571128845 0.6119629144668579 0.8429257273674011 0.9654734134674072 -0.9165400862693787 -0.9988515377044678 -0.7530518770217896 0.9307423830032349 0.19007648527622223 -0.5590183734893799 0.4569115936756134 -0.14681465923786163 0.42188918590545654 -0.8354926109313965 -0.9629023671150208 0.5856429934501648 0.7434726357460022 -0.9999719262123108 0.853630542755127 0.8746627569198608 -0.9977747797966003 0.2692681550979614 -0.7214502096176147 -0.8931028842926025 -0.37222665548324585 -0.7611544728279114 -0.4354725778102875 -0.999565064907074 0.15388308465480804 -0.9974947571754456 -0.8115214109420776 0.04334978386759758 -0.46112170815467834 0.6278285980224609 0.5426307916641235 0.7440416812896729 -0.03877870365977287 -0.6255345344543457 0.5504106879234314 -0.8158239722251892 0.8026912808418274 0.9484363794326782 -0.8130136728286743 0.7331814765930176 -0.3615966737270355 -0.09456291049718857 0.28533735871315 -0.4533485174179077 0.8268210291862488 -0.9424437880516052 0.8010592460632324 0.4269654452800751 0.3819871246814728 -0.9592167139053345 0.8045377135276794 0.9593328833580017 0.9094128012657166 0.9141890406608582 0.9979597330093384 -0.9557380080223083 0.9338038563728333 -0.6686311960220337 -0.5814545154571533 0.9999858736991882 0.8654943704605103 -0.995890736579895 -0.9171662926673889 0.9321022629737854 0.7576206922531128 0.9332111477851868 -0.9329850077629089 -0.5776526927947998 -0.0930856317281723 0.9596203565597534 -0.9544216990470886 0.9233924150466919 0.9745930433273315 -0.9781537652015686 -0.8615937232971191 0.9812334179878235 0.7891008853912354 -0.29503512382507324 -0.025857074186205864 -0.9997898936271667 -0.738528311252594 0.6291980743408203 -0.24945777654647827 0.9998964071273804 0.1628832221031189 0.43202245235443115 0.10475848615169525 -0.686420738697052 -0.838324785232544 0.9327747821807861 -0.7091851234436035 0.7968577146530151 0.19636107981204987 -0.8870015740394592 -0.9785339832305908 0.983383297920227 0.9532043933868408 -0.9598100781440735 -0.4488702118396759 0.3759850561618805 -0.6273351907730103 0.7383325695991516 0.8791539669036865 -0.7777729630470276 0.9165589809417725 0.9692395329475403 -0.5534887313842773 0.7911339998245239 -0.876264214515686 -0.6149973273277283 0.4754934310913086 0.99196857213974 -0.3579162359237671 -0.022177070379257202 0.9614899754524231 0.993582546710968 0.4723412096500397 0.9857503175735474 0.6522881984710693 0.7639652490615845 -0.4206160008907318 -0.9214658141136169 0.9185479283332825 0.9915074706077576 0.5672706365585327 0.09648718684911728 0.5660525560379028 0.955895721912384 0.5718620419502258 -0.992347240447998 -0.9440262317657471 0.9292446374893188 -0.9997057318687439 -0.9981149435043335 0.9735960364341736 -0.453189879655838 -0.7687191963195801 0.8159512877464294 0.19989491999149323 0.3632502853870392 0.964040994644165 -0.9868549108505249 -0.8423110246658325 0.9322851300239563 -0.8909116387367249 -0.998289167881012 -0.4371659755706787 -0.49588483572006226 -0.16004808247089386 0.7333648800849915 -0.9486174583435059 -0.7794433236122131 -0.9199823141098022 0.7357779741287231 -0.09466873109340668 0.9989833235740662 0.4336737394332886 0.6040970087051392 0.9857020378112793 -0.8314292430877686 -0.9605001211166382 0.7328076362609863 0.133247971534729 0.9999994039535522 0.9732485413551331 -0.8673349022865295 -0.7433487176895142 -0.7477996349334717 -0.9975274801254272 -0.9688952565193176 0.767198920249939 -0.16974106431007385 -0.9853267669677734 0.96354740858078
-0.7267916202545166 0.9517587423324585 -0.9656736850738525 0.9974058270454407 -0.5680054426193237 0.43421101570129395 0.7884993553161621 0.5779798030853271 -0.26718488335609436 0.24584119021892548 -0.4762629568576813 0.5418537259101868 0.010727370157837868 -0.6658957004547119 0.5062700510025024 -0.8730462789535522 0.8657907843589783 0.061575036495923996 -0.7555705904960632 -0.9411331415176392 -0.3343934118747711 0.9237785339355469 0.5302959680557251 0.33142662048339844 -0.9661083221435547 -0.7208627462387085 0.7705793380737305 0.6783236861228943 0.7880982160568237 -0.3675384819507599 -0.9727123975753784 -0.14636166393756866 -0.28254762291908264 -0.5185055732727051 0.8418774604797363 -0.4665498733520508 0.930784285068512 -0.5476490259170532 0.7644214630126953 -0.14136141538619995 -0.19465872645378113 -0.1096198558807373 -0.2568924129009247 0.06984829157590866 -0.8318607807159424 0.1287578046321869 0.9013899564743042 0.972512423992157 0.7340455055236816 -0.663719892501831 -0.5800732374191284 0.16412287950515747 0.9999993443489075 -0.9999963045120239 0.5470786094665527 0.07297173142433167 -0.40640291571617126 -0.9947819709777832 -0.4626381993293762 -0.7241005897521973 -0.27241435647010803 -0.9999899864196777 0.9991165399551392 0.6507875919342041 0.5728244781494141 -0.6869997382164001 -0.9089059829711914 0.1263178437948227 0.8305606842041016 -0.12884365022182465 -0.009459138847887516 -0.037907347083091736 0.8834304809570312 -0.9191545248031616 0.552681565284729 0.4683115780353546 -0.9327936172485352 0.9999999403953552 -0.03017827682197094 0.6954363584518433 -0.8949682116508484 0.51426762342453 -0.47465336322784424 -0.4587123692035675 0.9999985694885254 0.8298081755638123 0.869621217250824 -0.0371515117585659 -0.3656318485736847 -0.550335168838501 0.8035919666290283 0.07619907706975937 -0.026685893535614014 -0.939845621585846 0.49619144201278687 -0.32932063937187195 -0.14787134528160095 0.532059907913208 -0.634562075138092 -0.606809675693512 0.31349337100982666 0.8482951521873474 0.036515623331069946 0.7176769971847534 -0.5016316175460815 -0.8948096036911011 0.1932574212551117 -0.9854769110679626 -0.9332336187362671 0.4433598220348358 0.17003773152828217 -0.7125917673110962 0.02409401349723339 -0.4768587350845337 0.23473434150218964 -0.20505431294441223 -0.6234874725341797 0.6520618200302124 -0.988105297088623 -0.6124423742294312 -0.46134042739868164 0.08183438330888748 -0.4179959297180176 -0.024392837658524513 -0.9859306812286377 0.0987790897488594 -0.6915909647941589 0.6653308868408203 0.7869357466697693 -0.21207189559936523 -0.1334911286830902 0.6192314028739929 -0.1234501376748085 0.9961607456207275 0.961881697177887 -0.7605515718460083 0.6103672385215759 -0.6454657912254333 -0.7563059329986572 -0.5263611078262329 -0.947725236415863 0.9999879598617554 0.391597181558609 -0.01569305546581745 -0.43059948086738586 0.7800993323326111 0.9260629415512085 -0.6653827428817749 -0.6465016603469849 -0.9334741830825806 -0.41610783338546753 0.739091157913208 -0.8022575378417969 -0.5228196978569031 0.8786749839782715 0.9619042277336121 0.5039271116256714 -0.9958286285400391 -0.61705482006073 -0.6981970071792603 -0.8216084241867065 0.5241207480430603 -0.7704734802246094 0.4826367199420929 0.26678723096847534 -0.7874084711074829 -0.706109881401062 -0.0953519344329834 0.9670754075050354 0.42161935567855835 0.9923095703125 -0.2871939539909363 -0.7616084814071655 -0.9298102259635925 -0.9502874612808228 -0.7955902814865112 -0.8975285291671753 0.3671714663505554 -0.11035844683647156 -0.9999994039535522 0.934959352016449 0.7354542016983032 -0.574270486831665 0.03024655021727085 -0.5418407917022705 0.5041975975036621 0.002420973964035511 0.5745887756347656 -0.5431252717971802 -0.9555613398551941 0.7162744998931885 -0.3186134397983551 0.9837191104888916 0.9454010725021362 0.2457716315984726 0.774971604347229 0.041599661111831665 0.34456345438957214 -0.42886120080947876 -0.970212996006012 0.3534294664859772 0.6854578852653503 -0.788320779800415 -0.24786493182182312 0.2500362992286682 -0.5117312073707581 0.5951623320579529 -0.5357043743133545 -0.9639508724212646 0.4595314562320709 0.4690656363964081 -0.6071624159812927 -0.6396008729934692 0.37436529994010925 0.8589012026786804 0.6285848617553711 0.21967536211013794 -0.008045470342040062 -0.0030074960086494684 -0.2717561423778534 -0.8001586198806763 -0.46998167037963867 0.28979507088661194 -0.9677157402038574 0.06775692850351334 -0.6490768790245056 0.4335889518260956 -0.37940821051597595 -0.5197404623031616 0.40674808621406555 -0.2191610187292099 -0.2718626856803894 0.9021461009979248 -0.4965267777442932 -0.15776191651821136 -0.8053905963897705 0.274995356798172 0.39119288325309753 0.45110052824020386 0.19930703938007355 -0.854232668876648 -0.3795754015445709 -0.27314361929893494 0.12453537434339523 0.3696901500225067 0.7650217413902283 0.42392197251319885 -0.6654641628265381 0.6158542633056641 0.8988224267959595 0.8758817911148071 -0.3216926157474518 -0.794763445854187 0.7070927619934082 0.4511253237724304 -0.8597011566162109 0.8709322810173035 -0.32358941435813904 -0.692389965057373 -0.8419278860092163 0.6302063465118408 -0.23708879947662354 -0.5141392946243286 0.013262933120131493 -0.09399572014808655 -0.21053019165992737 -0.5931261777877808 0.8260257244110107 -0.9385488033294678 -0.6359248161315918 0.5147304534912109 -0.42692798376083374 -0.912426233291626 -0.4024588465690613 0.9190801978111267 -0.3432163894176483 -0.3978642225265503 -0.9897370338439941 0.011234913021326065 0.4871501922607422 -0.5847290754318237 0.6773648262023926 -0.7938096523284912 0.9240239262580872 -0.4771578013896942 -0.8117018938064575 -0.950771152973175 0.8719505071640015 -0.7223786115646362 0.2919679582118988 0.9810298085212708 0.14608009159564972 -0.6300666332244873 -0.2683422565460205 0.973477303981781 0.36424922943115234 0.9918904304504395 0.13886280357837677 0.9024729132652283 -0.5571651458740234 0.1486920416355133 0.3856969177722931 -0.742355227470398 -0.5163899064064026 0.8892852067947388 0.5234581232070923 0.8961799144744873 0.3615470826625824 0.9802389144897461 -0.7129800319671631 0.010615389794111252 -0.3593132495880127 0.21622774004936218 -0.9720564484596252 0.8620151281356812 -0.8096725940704346 0.748810887336731 0.8332391977310181 0.9623805284500122 0.2570037543773651 0.5547186136245728 0.9142141342163086 0.43317192792892456 -0.5287197828292847 -0.12373623251914978 -0.7958809733390808 0.866494357585907 0.9089963436126709 0.516231894493103 -0.13665007054805756 0.1650133728981018 0.8751146793365479 0.2087269276380539 0.2744905352592468 0.07874505966901779 -0.9321214556694031 0.9222212433815002 0.8756757378578186 0.3383117616176605 -0.32513776421546936 0.9954643249511719 -0.5821652412414551 0.9964534044265747 -0.9410219788551331 0.23529045283794403 -0.5407971143722534 0.3733474016189575 -0.6470935344696045 0.5961669683456421 -0.12390553951263428 0.12851734459400177 0.017995424568653107 -0.8281404376029968 0.4505579471588135 0.8653284311294556 0.4510369300842285 0.644685685634613 0.5056955218315125 0.3341670632362366 -0.7531179189682007 -0.973880410194397 -0.24134472012519836 0.15448719263076782 -0.979390025138855 0.9851616024971008 0.827644944190979 -0.8051934838294983 -0.598249077796936 0.456396222114563 0.3864385783672333 -0.47316819429397583 0.49540984630584717 0.22758233547210693 0.6321887969970703 0.5068685412406921 0.09754309058189392 0.12648774683475494 0.6487116813659668 0.736301064491272 0.5013072490692139 -0.5677312612533569 0.8197712898254395 0.4134218692779541 -0.5275448560714722 0.8543081879615784 -0.8025511503219604 -0.3796429932117462 0.9997522234916687 0.9312594532966614 -0.8531396389007568 -0.7155462503433228 0.47625041007995605 0.9318913221359253 0.6303098797798157 -0.9723155498504639 -0.3197614848613739 -0.2583957612514496 -0.9876193404197693 -0.9242255091667175 0.9700198173522949 0.5199466943740845 0.95709627866745 -0.30374589562416077 -0.5190407037734985 0.9639009833335876 -0.9732816219329834 -0.769793689250946 0.9434778094291687 -0.8851994276046753 -0.1573624163866043 -0.20646467804908752 -0.019809674471616745 0.04094990715384483 -0.8843016028404236 0.13014449179172516 0.9994223117828369 -0.8017675280570984 0.1572437584400177 0.9459110498428345 0.2722238600254059 0.1523129791021347 -0.7894805073738098 -0.8585131764411926 0.987256646156311 -0.8993797302246094 -0.8288474082946777 -0.6581373810768127 0.7511052489280701 0.7902730703353882 -0.2648125886917114 0.8416327834129333 -0.09577126055955887 -0.9946786761283875 0.9241882562637329 0.16708916425704956 0.6988922357559204 -0.16110782325267792 0.8701155781745911 -0.6829743385314941 -0.1160978376865387 0.12156409025192261 -0.6291344165802002 -0.41590529680252075 -0.9029307961463928 -0.9061862230300903 -0.6367998123168945 -0.8611434102058411 -0.5132834911346436 0.7328901290893555 -0.6440154314041138 0.2108113169670105 -0.3596849739551544 0.3753594160079956 0.7616169452667236 -0.2545155882835388 0.8643957376480103 -0.010432088747620583 -0.02207718789577484 0.6510047912597656 -0.35952433943748474 -0.9400728344917297 0.935956597328186 0.21756473183631897 -0.993541955947876 0.5385186672210693 0.10963831096887589 -0.8717231750488281 0.6408601999282837 0.7912675738334656 -0.024669140577316284 -0.8870426416397095 0.4490838944911957 -0.9379115104675293 -0.7018114328384399 -0.9019915461540222 -0.9376693964004517 0.9385101795196533 0.34029826521873474 0.31635427474975586 -0.18019509315490723 0.9571493268013 0.18434980511665344 0.2860875427722931 0.95599764585495 0.21525630354881287 -0.18705366551876068 0.7650429606437683 -0.0017348570981994271 -0.026276137679815292 -0.1804942488670349 -0.9683849811553955 0.7356042861938477 0.15337707102298737 0.033338747918605804 0.9478790163993835 0.09039559960365295 -0.9979711771011353 -0.6216408014297485 -0.056985851377248764 0.5052269697189331 -0.3563421666622162 -0.6293191313743591 -0.06831976026296616 -0.07631821930408478 -0.9999975562095642 0.9122409224510193 0.45653674006462097 -0.9983619451522827 0.1984664350748062 -0.7554943561553955 0.00018222644575871527 0.9956564903259277 -0.5499650239944458 -0.6146572828292847 -0.3820923864841461 -0.5173435211181641 0.7761579751968384 0.5530175566673279 0.7061769962310791 0.9684311151504517 0.4199288785457611 -0.023344432935118675 0.6253619194030762 -0.2066635638475418 0.8428283929824829 0.872810959815979 0.2340478003025055 -0.27663442492485046 0.8246588110923767 -0.6214039325714111 0.7364145517349243 0.05339054390788078 -0.19769488275051117 -0.5904501676559448 0.7778137922286987 0.9491318464279175 -0.947740912437439 0.6009149551391602 -0.9855785369873047 -0.5016777515411377 0.9999995231628418 -0.029406661167740822 -0.7818728089332581 -0.5678502321243286 -0.9448407888412476 0.765792965888977 -0.08166684210300446 -0.17824389040470123 0.4747496545314789 -0.2981230914592743 -0.14391663670539856 -0.4008742868900299 0.954817533493042 -0.9996734857559204 -0.7139458656311035 -0.7867069840431213 -0.22028084099292755 -0.07530190050601959 0.8582659959793091 0.9999788999557495 0.3477615714073181 -0.6191858053207397 0.9062501192092896 0.5362228155136108 -0.9737657904624939 -0.8902416229248047 0.9755667448043823 0.795047402381897 -0.7321468591690063 0.5208030939102173 0.04364980012178421 0.7321678400039673 -0.00041643527220003307 0.5219171643257141 0.9048759937286377 0.3543062210083008 -0.5942806005477905 0.50433748960495 0.7526752948760986 -0.525005578994751 -0.005120929330587387 -0.9986710548400879 0.504142701625824 -0.8857471942901611 0.9954526424407959 -0.840526819229126 0.6315229535102844 -0.870103657245636 0.0524461604654789 -0.21768566966056824 0.7106375098228455 0.22233135998249054 -0.09389934688806534 0.5620757341384888 -0.39720702171325684 -0.7649492025375366 -0.6379207372665405 0.9896281957626343 0.8250276446342468 0.15696430206298828 -0.9731034636497498 0.2493896186351776 0.42564597725868225 0.2412462681531906 -0.4715852737426758 0.45027586817741394 0.544299840927124 -0.9999675154685974 -0.2726784944534302 -0.7888737320899963 0.453116238117218 0.8630055785179138 0.07268960028886795 -0.2837595045566559 -0.1696508824825287 0.29060810804367065 -0.3094518184661865 -0.10396456718444824 0.8518422842025757 -0.3899264633655548 -0.6689444184303284 0.27999669313430786 0.03534775972366333 0.7496001720428467 0.930418074131012 -0.8237346410751343 -0.4400685727596283 0.7021187543869019 0.09562774747610092 0.7420130372047424 0.9136468172073364 -0.536846399307251 0.696271538734436 -0.30572831630706787 0.36549490690231323 0.21109206974506378 -0.5162267684936523 0.9083933234214783 -0.28180789947509766 -0.9962428212165833 -0.3897465765476227 0.3075682520866394 0.3946693539619446 -0.5264585018157959 -0.11666954308748245 -0.790557861328125 -0.8084743022918701 -0.04398343712091446 -0.8738278150558472 -0.9706835746765137 -0.708341121673584 0.4042271077632904 -0.7995944619178772 -0.4485807418823242 -0.7960805892944336 0.12881998717784882 -0.9332721829414368 -0.23203083872795105 -0.4235963821411133 0.9007571339607239 0.8062885999679565 -0.7879893779754639 0.1678204983472824 0.995475709438324 -0.5682202577590942 -0.7699863314628601 0.7310534119606018 0.9144854545593262 0.8952412605285645 0.9569882154464722 0.689923882484436 0.34520572423934937 0.9316376447677612 -0.8075591921806335 0.35772451758384705 -0.8126907348632812 -0.2406502366065979 0.9999967813491821 0.999992847442627 0.25707653164863586 -0.7092907428741455 0.8900690078735352 0.6728895306587219 -0.5017980337142944 0.9996931552886963 -0.7524490356445312 -0.9857315421104431 0.9078391194343567 -0.39326372742652893 0.6022437810897827 -0.6926673054695129 -0.5179498195648193 -0.1603633016347885 0.88604736328125 0.30617621541023254 0.7188043594360352 0.6362261772155762 0.20435205101966858 0.5695759654045105 -0.5179659128189087 0.6370044350624084 0.10020680725574493 -0.45426952838897705 -0.30801138281822205 -0.35401585698127747 0.8420365452766418 -0.6580020189285278 -0.9782149195671082 0.888623833656311 -0.17281733453273773 0.8304152488708496 0.2702934741973877 -0.957091212272644 -0.8565883040428162 -0.6884855628013611 -0.9024695754051208 0.5970045328140259 0.7404979467391968 0.5154614448547363 -0.93409663438797 0.10358813405036926 -0.3687366247177124 -0.8055002093315125 -0.7524464130401611 0.2210594266653061 -0.38541194796562195 -0.3698371350765228 0.6299501061439514 -0.6869086027145386 -0.4702903926372528 -0.4191085994243622 0.9057010412216187 -0.607915997505188 -0.036469489336013794 -0.27041947841644287 0.3512585461139679 -0.49292874336242676 -0.22840671241283417 0.04365191236138344 -0.9999017119407654 0.38923022150993347 -0.3467789888381958 0.5747507810592651 0.788312554359436 0.44300952553749084 0.8981963992118835 0.9795095324516296 -0.11671499907970428 0.2651389241218567 0.41584068536758423 0.9303041696548462 -0.2807850241661072 0.9072498083114624 -0.9851317405700684 -0.9749690890312195 0.7063748836517334 -0.3555915951728821 0.9999745488166809 0.03417248651385307 0.6930094957351685 -0.23265019059181213 0.5357322096824646 -0.04481179639697075 -0.6367021799087524 -0.7651946544647217 0.46259042620658875 -0.9989505410194397 -0.4908497631549835
0.7807494401931763 0.7809333801269531 0.7848272323608398 -0.6071844100952148 -0.9883114099502563 0.8268844485282898 0.9800326228141785 -0.6646305918693542 -0.9632079601287842 0.45085129141807556 0.9945095181465149 0.7101765275001526 -0.6694371700286865 0.3264409303665161 -0.019075851887464523 -0.755631148815155 0.9992819428443909 0.5331296920776367 0.4606398046016693 0.1787686049938202 -0.9999513030052185 0.9793780446052551 0.4728037416934967 0.7673900127410889 0.8933066725730896 -0.6747622489929199 -0.42694059014320374 0.49756544828414917 0.7433912754058838 -0.4173305630683899 0.9662639498710632 -0.6886231303215027 0.9064551591873169 -0.1952122002840042 -0.969974160194397 0.0016672745114192367 -0.6520066261291504 -0.7829684019088745 0.9516867995262146 0.17054983973503113 -0.8992577195167542 -0.08344247937202454 -0.8964132070541382 0.8992326259613037 0.7776856422424316 -0.04225875437259674 -0.9397880434989929 -0.44174742698669434 0.1866929978132248 -0.8951548337936401 -0.8358204364776611 -0.3841249644756317 0.9999993443489075 -0.9999621510505676 -0.339434415102005 -0.3704259991645813 -0.34867173433303833 -0.5526336431503296 -0.6394872665405273 -0.21825645864009857 0.7334787845611572 -0.9999725222587585 0.9999985098838806 -0.8639466762542725 -0.6595171093940735 0.9660065770149231 -0.7975364327430725 0.778401255607605 0.967434823513031 0.8165250420570374 0.7224107980728149 -0.16651038825511932 0.9506092071533203 -0.12815015017986298 -0.06003856658935547 -0.966255247592926 -0.969335675239563 0.9999991059303284 0.7526621222496033 0.6881328225135803 -0.45171067118644714 -0.9996581673622131 0.8796321749687195 -0.7747440934181213 0.9999997019767761 -0.9867618680000305 -0.8368546962738037 -0.2351432740688324 -0.14764095842838287 -0.9661152958869934 0.9907602667808533 -0.8117325305938721 -0.5769038796424866 0.47021013498306274 -0.30499738454818726 -0.5162541270256042 0.934349000453949 0.945207417011261 0.8880209922790527 0.9502005577087402 0.4290374219417572 -0.9520120620727539 -0.8751878142356873 0.2586744427680969 -0.9876563549041748 -0.8449591398239136 0.12614589929580688 0.9900839328765869 0.4181566834449768 0.7852931022644043 0.7283384799957275 0.8561723232269287 0.5834828019142151 0.9020965695381165 -0.8011603951454163 -0.9921838045120239 0.2838417589664459 -0.4890616536140442 -0.30518990755081177 0.9764720797538757 0.2376204878091812 0.8650728464126587 0.9562292695045471 0.7760542035102844 -0.8016288876533508 -0.7407200336456299 -0.5609173774719238 -0.5420851111412048 0.9367965459823608 -0.5363600254058838 0.3522815704345703 -0.7679665684700012 0.9963011741638184 0.9064530730247498 -0.9661626219749451 -0.26031309366226196 -0.5235435962677002 -0.3306257724761963 -0.9344596862792969 -0.4643157720565796 0.887833297252655 0.9999988079071045 0.25621503591537476 -0.922317624092102 -0.5313804149627686 0.5216445326805115 0.4025707244873047 -0.09623442590236664 -0.6337611675262451 0.9987528324127197 -0.2243904173374176 0.9999975562095642 0.8795535564422607 0.3420840799808502 0.22333137691020966 0.9967681765556335 -0.022946672514081 0.5385688543319702 -0.920645534992218 -0.9167963266372681 -0.07202639430761337 -0.9927797913551331 0.9571864604949951 -0.003817889839410782 0.1848444640636444 -0.8039121031761169 0.29607370495796204 -0.9771929979324341 0.6506907939910889 0.07309292256832123 0.9862523078918457 0.3934731185436249 0.716391384601593 -0.9432490468025208 -0.9997708201408386 -0.2935563027858734 0.9669514894485474 -0.6592175960540771 -0.12127827852964401 -0.9999999403953552 -0.5835727453231812 0.7432948350906372 -0.16586649417877197 -0.6583302021026611 -0.5632277727127075 0.23081834614276886 -0.861813485622406 0.47825273871421814 0.9302090406417847 -0.8058942556381226 -0.8178507089614868 -0.9341305494308472 0.6797914505004883 0.3928544223308563 0.33617669343948364 -0.4745149314403534 0.8745993375778198 0.9932746887207031 -0.9466976523399353 0.8075168132781982 0.9505585432052612 -0.01120378915220499 -0.3018272817134857 0.8425800800323486 0.33145278692245483 -0.23329590260982513 0.4371531009674072 0.8366189002990723 0.6558314561843872 -0.9839299917221069 0.13808085024356842 -0.7952492237091064 -0.7875534296035767 -0.6156893372535706 -0.6254180073738098 0.5739796757698059 0.6992193460464478 -0.6954901814460754 -0.5498892068862915 0.9202524423599243 0.40436437726020813 0.8577019572257996 -0.8301336169242859 0.6136289834976196 -0.2054271399974823 0.9954891800880432 -0.8496402502059937 -0.12289099395275116 -0.5206649303436279 0.8148974180221558 -0.41090989112854004 0.36459431052207947 -0.9808284640312195 0.866303563117981 -0.9996837377548218 0.42869532108306885 -0.20188100636005402 -0.978351891040802 -0.8250664472579956 -0.6117265224456787 0.031815290451049805 -0.3263826072216034 -0.21450582146644592 0.9953648447990417 0.5090211033821106 0.9572229385375977 0.9870596528053284 0.8277152180671692 -0.7373942136764526 -0.1054060086607933 0.6975263357162476 0.7935209274291992 0.8710335493087769 -0.15379397571086884 0.4305143356323242 -0.6640900373458862 0.9914087057113647 0.7962601780891418 -0.5966415405273438 0.5287249088287354 0.57735276222229 -0.8427956104278564 -0.9553767442703247 -0.3013526201248169 0.313721239566803 -0.9943503737449646 0.8675937652587891 0.7692195177078247 0.7985422015190125 0.5214242339134216 -0.3139992654323578 -0.19937412440776825 -0.9536923766136169 0.9999545812606812 0.9980261921882629 0.16550491750240326 0.9950502514839172 0.9242883324623108 0.8044170141220093 -0.784490704536438 -0.5459022521972656 0.8158356547355652 0.7221397161483765 -0.8361477851867676 -0.9036083221435547 -0.8154321908950806 -0.6089887619018555 -0.804524838924408 -0.9272236824035645 0.09715887159109116 -0.9640277028083801 -0.9920601844787598 -0.3315610885620117 -0.5246645212173462 -0.5789972543716431 -0.7105439901351929 0.5615383386611938 0.8950800895690918 0.4626496732234955 -0.9615793228149414 0.2720894515514374 0.8862379193305969 -0.7552317380905151 0.7227339744567871 0.7446775436401367 -0.10721531510353088 -0.5084713697433472 -0.8002328276634216 0.8555522561073303 0.3305860161781311 -0.9826071858406067 -0.9575358629226685 -0.3885861337184906 -0.11805698275566101 0.013333975337445736 0.9612985253334045 -0.9683430194854736 -0.6023399829864502 0.323371946811676 0.7261687517166138 0.9023948311805725 0.579271674156189 -0.7082117199897766 0.9178897738456726 0.5497199296951294 -0.7558343410491943 0.0799226462841034 0.1253412812948227 -0.5954004526138306 0.7726684212684631 0.28015586733818054 -0.9242373704910278 -0.8954138159751892 -0.6333010792732239 -0.4886329174041748 -0.32730427384376526 -0.5145993828773499 -0.17884811758995056 -0.8756799697875977 0.7790016531944275 0.922269880771637 0.9890215992927551 0.7620134949684143 -0.11370346695184708 -0.7115720510482788 -0.9437072277069092 -0.8585702776908875 0.09446628391742706 0.17423632740974426 0.5724895596504211 -0.29230982065200806 -0.8764363527297974 0.737256646156311 0.9745979309082031 0.7766638994216919 0.5740008354187012 0.9652376174926758 0.5956985950469971 0.9104105234146118 -0.9846939444541931 -0.9874125123023987 0.7674770355224609 -0.6278111934661865 0.42978763580322266 -0.36748048663139343 0.98074871301651 0.6371504068374634 0.8660079836845398 0.7330803871154785 0.6282758712768555 -0.06011238694190979 0.9590619206428528 0.4981462061405182 -0.3050402104854584 -0.7222942113876343 0.9255295991897583 0.1922173649072647 -0.5685547590255737 -0.3513019382953644 -0.9245710968971252 -0.94679856300354 0.873347282409668 -0.8485638499259949 0.4540597200393677 -0.6172357797622681 -0.9680294990539551 0.8621605038642883 0.9999852180480957 0.12103135883808136 0.9861083626747131 0.9952923059463501 -0.09018319100141525 -0.9212624430656433 0.9467319846153259 -0.5535407066345215 0.8134970664978027 -0.8934110403060913 -0.9908460974693298 0.8138691186904907 0.7816593647003174 0.09782538563013077 0.9482041597366333 -0.7071301341056824 -0.2583058178424835 -0.060822367668151855 0.8507344722747803 -0.2532612681388855 0.40220221877098083 -0.7167752981185913 -0.9328767657279968 0.6748438477516174 0.15437695384025574 0.9795252084732056 0.9849043488502502 -0.8769189715385437 0.9963489174842834 0.9874557852745056 0.3407696783542633 0.9932191371917725 -0.4800136983394623 -0.45757025480270386 -0.9694917798042297 -0.8413001894950867 0.3705117702484131 -0.5680527091026306 -0.699642539024353 0.9987561106681824 0.7245868444442749 0.920759379863739 -0.38453343510627747 -0.7207469940185547 0.1465045064687729 -0.8422682285308838 0.1658090502023697 -0.8423430919647217 -0.019439665600657463 0.6161633729934692 -0.9638157486915588 0.9999524354934692 -0.9666372537612915 -0.48981815576553345 -0.7546089887619019 -0.47433173656463623 0.7836153507232666 0.9849879741668701 -0.6780228614807129 -0.8985952734947205 -0.0930199846625328 0.9839240908622742 0.9510113000869751 -0.03296511992812157 0.14083150029182434 -0.2718427777290344 0.9629216194152832 0.9446461796760559 0.9679654240608215 -0.9049450159072876 0.2435135543346405 0.14887656271457672 0.8165917992591858 -0.9779908061027527 0.035376179963350296 -0.018890276551246643 -0.5795116424560547 -0.8651928305625916 -0.5491433143615723 0.22335445880889893 -0.04062357172369957 0.9534841775894165 0.6171145439147949 0.9901906847953796 -0.42080482840538025 -0.0005313511355780065 -0.7834076881408691 0.8666591644287109 -0.29012754559516907 0.9893029928207397 0.9147478938102722 -0.011305534280836582 0.4919678866863251 0.9606536626815796 0.9677324295043945 0.5133556127548218 0.9975011348724365 -0.16520299017429352 0.9329929947853088 -0.8032835721969604 0.2559090852737427 0.40325304865837097 0.9861091375350952 -0.6525470018386841 0.720916748046875 -0.33647072315216064 -0.4946942627429962 -0.8048444986343384 -0.9644500017166138 -0.25505921244621277 -0.9447284936904907 -0.4662947654724121 -0.9479032754898071 -0.7960237264633179 0.7716381549835205 0.5662903785705566 0.4069715738296509 -0.9999995827674866 -0.7058547735214233 -0.9328874349594116 -0.9999957084655762 -0.3920696973800659 -0.1750658005475998 -0.8787025213241577 0.9841864109039307 -0.3443329632282257 0.9253692626953125 0.33349621295928955 0.7580519318580627 0.7387676239013672 -0.9037484526634216 0.7133350372314453 -0.9846031069755554 -0.9238222241401672 -0.7252442240715027 0.8105571269989014 0.9052258133888245 -0.6414041519165039 0.3428402543067932 0.7736756801605225 -0.9720767736434937 0.8311645984649658 0.6599589586257935 0.21182158589363098 -0.8761662244796753 0.7617878913879395 0.8478502035140991 -0.23552869260311127 0.38555842638015747 0.5474547147750854 0.8698747754096985 -0.8125086426734924 -0.742965579032898 0.9999986886978149 -0.4047011137008667 0.9943925142288208 -0.14337214827537537 -0.7257510423660278 0.7257179617881775 0.9007732272148132 0.3550495207309723 0.8157641887664795 -0.9486923217773438 -0.7450476884841919 0.11530313640832901 -0.9361270666122437 -0.987384557723999 -0.6603449583053589 0.029994778335094452 -0.9882314205169678 0.9712017178535461 0.11234806478023529 0.999961793422699 -0.3808753788471222 0.8785080313682556 -0.930540919303894 0.1798119992017746 -0.011514483019709587 -0.36315158009529114 0.7162957787513733 0.8844559788703918 -0.8435156345367432 0.9928496479988098 0.2674400210380554 -0.9267610311508179 -0.8102846145629883 -0.6851086616516113 0.8827716112136841 0.5388311147689819 0.9174622297286987 0.9546645879745483 0.8786671757698059 -0.8033220767974854 -0.7793790698051453 -0.7825308442115784 0.11747173219919205 0.3636033535003662 0.9991230368614197 -0.46437519788742065 0.8610716462135315 -0.9436357617378235 -0.9886301755905151 -0.8246070146560669 0.9663519859313965 0.5658964514732361 0.8026878237724304 -0.4018450081348419 -0.12987340986728668 0.4789738059043884 0.27306467294692993 -0.2718333303928375 0.010732677765190601 -0.9101426601409912 0.7948753833770752 -0.22188718616962433 -0.3962440490722656 0.9644924998283386 -0.6612288951873779 -0.2566451132297516 0.5217751264572144 -0.9999096393585205 0.9918709397315979 -0.0968332439661026 -0.3178311288356781 0.7880996465682983 0.9652309417724609 -0.9270269870758057 0.3050156235694885 0.9221760034561157 0.012495370581746101 -0.6968399882316589 0.9058359861373901 -0.8368300199508667 0.8125592470169067 -0.8332525491714478 0.9595077037811279 -0.9645699858665466 0.1328885853290558 -0.366748571395874 -0.9993916153907776 -0.12308798730373383 0.6657741665840149 0.37586450576782227 0.9947840571403503 -0.7076055407524109 0.17749017477035522 0.9742070436477661 -0.6709648370742798 -0.9339616894721985 -0.6475658416748047 0.9600319266319275 -0.1799367517232895 -0.999325692653656 -0.827728271484375 -0.5889943242073059 -0.8771181106567383 -0.8483433723449707 0.15153053402900696 0.028920846059918404 -0.9231660962104797 -0.09088404476642609 -0.2142404317855835 -0.9942392110824585 0.39192792773246765 -0.7513214349746704 0.5389680862426758 -0.634513258934021 0.7760187983512878 -0.8624922037124634 -0.670456051826477 0.07246758788824081 -0.9022791981697083 0.7337125539779663 0.44884374737739563 -0.721455991268158 0.9012424349784851 0.9762679934501648 -0.9201392531394958 0.8586233854293823 -0.5041422843933105 -0.9836832880973816 0.4736953377723694 -0.6298403739929199 -0.2916460633277893 0.27372533082962036 0.3551899492740631 -0.13247227668762207 -0.6059690713882446 -0.7467349767684937 -0.9210512638092041 0.9999974966049194 0.9997711181640625 0.44099268317222595 0.863728940486908 0.5954385995864868 0.27172377705574036 -0.3895365595817566 0.9952741861343384 -0.9016956686973572 -0.12610238790512085 0.943328857421875 -0.8442933559417725 0.9396188259124756 0.3722359836101532 0.5049495697021484 -0.9877894520759583 -0.2335072159767151 -0.2580098807811737 -0.4923427700996399 -0.8311837315559387 0.32886168360710144 -0.9017153978347778 0.4470977187156677 0.6842589378356934 -0.42923682928085327 0.8410854339599609 0.16204655170440674 -0.7616226673126221 0.8115532398223877 0.9862496852874756 -0.9860538840293884 -0.8652103543281555 0.9996868371963501 0.8166418075561523 0.8826515674591064 -0.7662855386734009 -0.8337327241897583 0.6976772546768188 -0.7739385366439819 -0.019563285633921623 -0.9601554870605469 -0.045341912657022476 -0.9640174508094788 -0.8368509411811829 0.9642446637153625 0.7508050203323364 0.9199525117874146 -0.9937981963157654 -0.7127553224563599 -0.43917879462242126 -0.9752092957496643 0.8486047983169556 0.2082393318414688 -0.6387321949005127 0.04577837139368057 -0.16804274916648865 0.9421594142913818 -0.8966966271400452 0.9817973971366882 -0.9882621765136719 0.5570027828216553 0.4841572046279907 -0.9994178414344788 -0.8764650821685791 0.598757266998291 -0.3358069062232971 -0.5725694894790649 -0.9938691854476929 -0.3252944350242615 -0.9682091474533081 0.7310398817062378 -0.9965400695800781 0.9825366735458374 0.8817487359046936 -0.9987205266952515 0.6235256195068359 0.7938828468322754 -0.876288652420044 0.526809811592102 -0.8088257312774658 0.9999255537986755 0.9998545050621033 -0.9784322381019592 0.6106517314910889 -0.36646729707717896 0.5337097644805908 -0.37442547082901 0.21689358353614807 -0.6329466104507446 -0.9999113082885742 -0.8756048679351807
-0.2502939701080322 -0.9634893536567688 -0.9632988572120667 0.5902067422866821 0.15801580250263214 0.9907017946243286 0.7667999267578125 0.02879064716398716 0.998364269733429 -0.9803722500801086 -0.9371600151062012 -0.6785478591918945 0.5527103543281555 0.8156415224075317 -0.277105450630188 -0.9629749655723572 0.930778443813324 -0.09116171300411224 -0.33187198638916016 0.7712274193763733 0.9692374467849731 -0.0859764814376831 0.9199544191360474 -0.36025986075401306 -0.9000489711761475 -0.6903029680252075 -0.7793629169464111 0.1420748084783554 -0.8041236996650696 0.6781104803085327 -0.8291195631027222 -0.6699893474578857 0.9031834602355957 0.04301099851727486 0.1910187155008316 -0.6386851072311401 -0.8189338445663452 -0.345770925283432 -0.46651649475097656 -0.555850088596344 0.9404999017715454 -0.8447884917259216 -0.858500599861145 0.5171996355056763 -0.6904634833335876 0.25662627816200256 -0.9776427745819092 0.7853582501411438 0.9828592538833618 -0.3148001730442047 0.22342528402805328 -0.9310557842254639 1.0 -0.999991238117218 -0.9518335461616516 -0.8629559874534607 -0.9480292797088623 -0.7256567478179932 -0.8752232193946838 -0.21854880452156067 -0.5261622071266174 -0.9999917149543762 0.9998739957809448 0.17103618383407593 -0.28120407462120056 -0.9053770899772644 -0.7886658906936646 0.8227619528770447 -0.7847462892532349 0.6483637690544128 -0.8992343544960022 -0.8085388541221619 0.6527299880981445 0.8608200550079346 -0.8927769064903259 -0.997256338596344 0.9704058766365051 0.9999999403953552 -0.8895114064216614 -0.6098159551620483 0.9289858937263489 -0.9960821270942688 -0.6886312961578369 -0.7463172674179077 0.9999998807907104 0.9636603593826294 0.1040673479437828 -0.8758856058120728 -0.7556024789810181 -0.036974240094423294 -0.8757975697517395 -0.7942827343940735 -0.07007627934217453 -0.35238343477249146 0.9524179100990295 -0.7825778722763062 -0.994912326335907 -0.9561590552330017 0.49477478861808777 -0.9979046583175659 -0.7003147602081299 0.8581991791725159 -0.9944299459457397 0.7271066904067993 -0.17722156643867493 -0.9899269342422485 -0.20352177321910858 -0.9760158658027649 0.26194095611572266 -0.7994361519813538 -0.25438499450683594 -0.7757953405380249 -0.6238867044448853 0.0003211498260498047 0.2194092571735382 -0.28752589225769043 0.12427463382482529 0.9956806302070618 -0.9534074664115906 0.9874403476715088 0.8600199222564697 0.9983980655670166 -0.9395011067390442 0.06694522500038147 -0.6976804733276367 0.9819597005844116 0.20153126120567322 0.9880075454711914 -0.9038437604904175 0.27912309765815735 -0.7093797326087952 0.46518105268478394 0.4161478877067566 0.9781110286712646 0.9913612604141235 0.1757201850414276 0.3251155614852905 -0.5369092226028442 0.4104755222797394 0.8664208650588989 -0.9512521624565125 0.9999997019767761 0.9959427714347839 0.17816530168056488 -0.43889743089675903 0.5132170915603638 0.944280743598938 0.12309522926807404 -0.059386249631643295 -0.8784735202789307 0.6889968514442444 0.9999678730964661 0.5522308349609375 0.80478435754776 -0.6268811225891113 0.9243713617324829 -0.941194474697113 -0.7341949343681335 0.9494633674621582 -0.5532263517379761 -0.9874575734138489 0.6334222555160522 -0.9655497670173645 -0.9883921146392822 0.8310916423797607 0.8352119326591492 0.512945830821991 -0.4335310161113739 -0.6379265785217285 0.9545102715492249 0.738932728767395 0.9131490588188171 -0.5051528215408325 0.6609350442886353 0.9837526082992554 0.1609075665473938 0.3986389935016632 0.9329327940940857 0.3719547986984253 -0.9999999403953552 0.28287652134895325 0.9849554300308228 0.6659762859344482 0.8760385513305664 0.15640684962272644 -0.02914176508784294 -0.7337304353713989 -0.7685533761978149 0.13838626444339752 -0.8301816582679749 0.916691780090332 0.06822635978460312 0.9893552660942078 0.1897776573896408 -0.35285764932632446 0.7250109910964966 0.9875606894493103 0.9749919772148132 0.6109304428100586 -0.6661586761474609 0.4616193473339081 -0.436176598072052 -0.5968761444091797 -0.040147747844457626 -0.008451547473669052 0.47847113013267517 0.7454614639282227 -0.22900687158107758 -0.8553386330604553 0.9486101865768433 0.8403457999229431 0.9675399661064148 -0.37951502203941345 0.5927628874778748 0.9837657809257507 -0.42123010754585266 -0.960385262966156 -0.8527063131332397 0.18526747822761536 -0.928067147731781 0.9460742473602295 0.08482146263122559 0.7049294114112854 -0.9278892278671265 -0.43950358033180237 -0.9075995683670044 -0.6275699734687805 0.09443486481904984 0.9980204701423645 -0.8853088021278381 0.6235230565071106 0.7944888472557068 0.9682819247245789 -0.5946915149688721 0.9006720781326294 0.3917408287525177 0.7896034717559814 0.9631827473640442 0.15413156151771545 -0.7857275009155273 -0.6823006868362427 -0.7926655411720276 0.43552663922309875 0.866523027420044 -0.35603225231170654 -0.04064704850316048 0.9737449884414673 -0.4958438277244568 0.9528944492340088 -0.9596176743507385 0.9609999656677246 -0.7550796270370483 0.29771459102630615 -0.7908090353012085 -0.7590465545654297 0.21580708026885986 0.804183840751648 0.6886999011039734 0.7361898422241211 -0.7421896457672119 0.4865095317363739 0.8329172730445862 -0.9366014003753662 0.8082515001296997 -0.5334666967391968 0.23915351927280426 0.31475967168807983 0.029831349849700928 -0.5808992385864258 0.1157037690281868 0.11263842135667801 0.294581800699234 -0.9857633113861084 0.9489922523498535 0.8445797562599182 0.028673818334937096 0.5974017381668091 0.9477564096450806 0.6596319675445557 0.5280523300170898 0.5511701703071594 -0.9655473828315735 -0.8792679309844971 0.9825934767723083 -0.8904612064361572 -0.5396844148635864 -0.9616283178329468 0.9828808903694153 -0.9261184930801392 0.902932345867157 0.9452766180038452 0.8555386066436768 0.23348510265350342 -0.8038383722305298 0.8186485767364502 0.8456225395202637 0.04083576425909996 -0.94280606508255 0.5827187299728394 -0.9142638444900513 0.854181706905365 -0.9499456882476807 -0.1307660937309265 0.945023775100708 0.9784804582595825 0.0783640518784523 -0.13432496786117554 -0.6010252237319946 0.9941303133964539 0.3913993239402771 0.9956752061843872 0.05020180344581604 -0.3768174350261688 -0.4998316466808319 -0.818805456161499 -0.6212863922119141 0.912856936454773 -0.7926127910614014 0.8923601508140564 -0.9519331455230713 -0.639839231967926 0.9255098700523376 -0.4446180760860443 0.45268914103507996 -0.938728928565979 0.43138357996940613 0.18259403109550476 0.979846715927124 0.9714068174362183 0.21146735548973083 0.9928025007247925 -0.9758580923080444 -0.9862937331199646 -0.7602846622467041 0.7442213296890259 0.6285433769226074 0.4356366991996765 0.7617231607437134 0.631608247756958 -0.2598046064376831 0.9986166954040527 -0.5727266669273376 -0.705337643623352 -0.7088004350662231 0.6534388661384583 -0.5403648614883423 0.8998308181762695 0.7939690351486206 -0.9625373482704163 0.11938898265361786 -0.3250166177749634 -0.3726489841938019 -0.7146178483963013 -0.8459115624427795 0.9697593450546265 0.23128247261047363 0.9812241792678833 0.5665310025215149 0.8863301873207092 0.8975650072097778 0.4597451984882355 -0.49781545996665955 -0.7892791628837585 -0.9945904016494751 -0.9078750610351562 0.6966606974601746 -0.17292644083499908 0.6677415370941162 -0.8259009122848511 -0.755035936832428 -0.9865690469741821 0.9307860732078552 -0.5958082675933838 -0.0740463137626648 0.7659851312637329 -0.6434762477874756 0.46418067812919617 -0.7648252248764038 0.573094367980957 0.8078795671463013 -0.0021716097835451365 -0.9160340428352356 -0.9702160954475403 0.45406538248062134 -0.6224499940872192 -0.15801729261875153 0.4170084297657013 0.9996286034584045 0.6429963111877441 0.8944070935249329 -0.7547435164451599 -0.3529503643512726 0.7490553855895996 -0.2818097472190857 -0.8991180658340454 0.1822495013475418 -0.5428511500358582 -0.9679393172264099 0.08953043818473816 -0.6530358791351318 -0.5580017566680908 -0.9546536207199097 0.3791951835155487 0.8528791666030884 -0.24240167438983917 -0.982670247554779 -0.13964059948921204 -0.6932003498077393 -0.9783222675323486 -0.4199105501174927 -0.8351958990097046 0.9288907647132874 -0.9804887771606445 -0.9534738659858704 -0.7406210899353027 0.9948621988296509 -0.17431402206420898 -0.8928470611572266 -0.23554879426956177 0.8318343758583069 0.9830493330955505 -0.4205126464366913 -0.7489580512046814 -0.9766085743904114 0.47341376543045044 -0.9511124491691589 -0.724612832069397 0.611627995967865 0.028979526832699776 -0.9924225807189941 0.931044340133667 -0.5799760818481445 -0.9540749192237854 -0.99144047498703 0.08123979717493057 0.28133320808410645 0.10748211294412613 0.37873876094818115 0.9973751306533813 -0.6364577412605286 0.1472124606370926 0.8936796188354492 -0.9795525670051575 -0.5198628902435303 -0.7055835723876953 0.5524407625198364 0.24619172513484955 -0.4975165128707886 -0.8774174451828003 -0.9825239181518555 0.43629419803619385 0.5309603214263916 0.925503671169281 -0.8982830047607422 -0.20901860296726227 0.8135626316070557 0.5048647522926331 0.8294052481651306 0.26349806785583496 -0.9860852360725403 -0.9707793593406677 0.9880129098892212 0.31445226073265076 -0.9558255076408386 0.3870449960231781 0.17870284616947174 -0.7944450974464417 -0.9509660601615906 -0.9370601177215576 0.4009605646133423 0.9464813470840454 -0.4371497929096222 0.4144664704799652 0.8927626609802246 -0.9985642433166504 0.8520667552947998 0.7670815587043762 0.6479965448379517 0.9330150485038757 -0.2898632884025574 0.6774880290031433 0.7364181280136108 0.19639432430267334 -0.9943643808364868 0.2581656575202942 0.5577967762947083 0.5677429437637329 0.5967514514923096 -0.12183478474617004 -0.9668306112289429 -0.9991179704666138 -0.8622018694877625 -0.047397177666425705 0.6356521248817444 -0.4605136215686798 0.8226050138473511 -0.670883059501648 -0.9549254775047302 -0.4601966142654419 0.9303790926933289 0.4827311336994171 -0.9937250018119812 0.1606941521167755 0.9377372860908508 -0.9999996423721313 -0.8308320641517639 0.2798956334590912 -0.9999984502792358 -0.3603830635547638 -0.7471845746040344 -0.2700479328632355 0.7845940589904785 0.966568112373352 -0.36122098565101624 -0.7067813873291016 0.5087525844573975 -0.9182990193367004 0.3714163303375244 -0.0885954275727272 -0.27081701159477234 0.47105395793914795 -0.7082878351211548 -0.9401963353157043 0.7995955944061279 0.3270319998264313 0.9057329893112183 -0.901710569858551 0.9689652919769287 0.6403845548629761 0.04858876392245293 0.5578827857971191 -0.6592111587524414 0.284487783908844 -0.24718745052814484 0.7687339782714844 0.5893727540969849 0.0863502249121666 0.9950193762779236 -0.8597585558891296 -0.6554334163665771 0.9999998211860657 -0.3880792260169983 0.9156172275543213 0.285840779542923 -0.9270466566085815 0.8164900541305542 0.6619182825088501 -0.36672377586364746 0.759937047958374 0.8134632110595703 0.26887306571006775 -0.17175501585006714 -0.2535313665866852 -0.9778375625610352 -0.5057269930839539 -0.956106424331665 0.3229678273200989 0.9809422492980957 -0.586409330368042 0.9999639391899109 -0.40366238355636597 0.3766025900840759 0.033155933022499084 -0.261234313249588 -0.9268378615379333 -0.7092396020889282 -0.9536502361297607 0.9981741905212402 -0.17854666709899902 0.9331968426704407 0.9534326791763306 0.5819794535636902 0.5848144292831421 -0.11549679189920425 -0.7819046974182129 -0.42210009694099426 -0.7533897161483765 -0.6286212205886841 -0.8276692032814026 -0.23807011544704437 -0.4306662678718567 -0.9991287589073181 -0.240756556391716 -0.0005988478078506887 0.9629310965538025 -0.9185731410980225 0.7371004819869995 -0.6513579487800598 0.9214019179344177 0.9366753101348877 -0.7471462488174438 -0.3675635755062103 -0.18420352041721344 0.3555600941181183 -0.7348456978797913 -0.6351917386054993 -0.2660657465457916 0.9758744239807129 -0.7982471585273743 0.6113643646240234 -0.9618870615959167 0.5655254125595093 -0.30118802189826965 0.1993705779314041 -0.8063910007476807 -0.1725052148103714 -0.2878594696521759 -0.9999948143959045 0.9761792421340942 0.9874940514564514 -0.7988324165344238 -0.15299424529075623 -0.7406113147735596 0.402820885181427 0.3843536078929901 -0.9864781498908997 0.38720130920410156 -0.9806818962097168 -0.38258934020996094 -0.24654516577720642 -0.9816989302635193 0.3840196132659912 -0.4441032409667969 0.6476260423660278 -0.8313809633255005 -0.7332901358604431 0.7849768996238708 -0.20255963504314423 -0.7464265823364258 -0.9861447215080261 -0.9762078523635864 0.9588484168052673 -0.5118088722229004 0.3528783321380615 0.7655091285705566 0.16963502764701843 -0.5107733607292175 -0.5451539158821106 -0.5550466775894165 -0.9998894333839417 -0.913801908493042 0.7009520530700684 -0.7328718900680542 -0.997110903263092 0.7785009741783142 0.18805846571922302 -0.9828037023544312 -0.2799728810787201 -0.3090417683124542 0.23711098730564117 -0.27162790298461914 -0.9433026313781738 0.06094720587134361 0.9988588094711304 0.3074067234992981 -0.9992307424545288 -0.766521155834198 0.4348919093608856 0.7491681575775146 0.9141254425048828 0.7085188627243042 -0.8185033798217773 0.787716805934906 0.9742542505264282 -0.03591028228402138 -0.7604814171791077 0.9780426025390625 -0.901568591594696 0.8841342329978943 -0.7871425151824951 0.8094896674156189 0.8709625005722046 -0.9420090913772583 -0.9789988994598389 -0.7871628403663635 0.7416465878486633 0.8420606851577759 0.9998115301132202 0.9999821186065674 0.6393448114395142 -0.9028769731521606 -0.6478551626205444 -0.7290658354759216 0.6435273885726929 0.9998735785484314 0.27724286913871765 -0.4209710359573364 -0.3304124176502228 -0.7581268548965454 0.2880440950393677 0.7957229018211365 -0.56244295835495 -0.8662517666816711 0.7385362982749939 -0.5321605801582336 0.9243930578231812 -0.479604035615921 -0.5642569065093994 0.9405125975608826 0.30011916160583496 -0.3029158115386963 0.37555328011512756 -0.9079699516296387 -0.8532777428627014 0.02958505041897297 0.947649359703064 -0.5095466375350952 0.6423648595809937 0.9684116244316101 -0.4246603846549988 0.8399147987365723 0.9957089424133301 0.4849952161312103 0.7816721796989441 -0.7797890901565552 0.7145076990127563 0.9637534618377686 0.9724130630493164 -0.39605388045310974 -0.15004566311836243 0.3713921904563904 0.9572835564613342 -0.9399983286857605 -0.7929733991622925 0.6025581359863281 -0.31515204906463623 -0.8839957118034363 0.24643675982952118 0.23751136660575867 -0.09755172580480576 0.29592880606651306 0.016975952312350273 0.6255501508712769 -0.47454240918159485 0.7044162750244141 -0.995098888874054 0.3306816816329956 -0.3950900733470917 0.3761078715324402 -0.999992847442627 0.44764596223831177 -0.8472167253494263 0.061285894364118576 0.7112894058227539 0.8324491381645203 -0.9000381827354431 -0.4119378924369812 -0.9479144811630249 -0.9464640021324158 0.13360416889190674 -0.7693668603897095 -0.9864420294761658 -0.9311437606811523 -0.08926058560609818 -0.8227984309196472 -0.6227233409881592 0.24536454677581787 0.9999821782112122 -0.9031978845596313 0.7187200784683228 -0.39630645513534546 -0.8853139281272888 -0.872791588306427 0.6166980266571045 -0.9674311280250549 -0.6406309604644775 -0.9998189210891724 -0.8571261167526245
-0.6948354244232178 0.9732574224472046 0.9311883449554443 -0.7858173847198486 -0.1708567589521408 -0.7886245250701904 -0.9932862520217896 0.14447875320911407 -0.933377206325531 0.7883217930793762 -0.30588939785957336 -0.622637152671814 -0.8875053524971008 -0.7839375734329224 -0.9028559923171997 -0.4639471471309662 0.8901640772819519 0.5319080948829651 -0.8827970623970032 -0.3590719997882843 0.9663285613059998 -0.9859030842781067 -0.9521229863166809 0.3455599546432495 0.6579225063323975 -0.9570293426513672 -0.7858947515487671 0.18125995993614197 -0.672072172164917 -0.04747874289751053 0.8292375802993774 -0.3580743670463562 -0.674774706363678 -0.8303489089012146 0.24162141978740692 0.7585294246673584 0.9149515628814697 0.201643168926239 -0.3041767179965973 0.24491249024868011 0.9632174968719482 -0.5465357303619385 0.5316792726516724 0.851737916469574 -0.27945852279663086 0.9455931186676025 -0.9158831834793091 -0.3183008134365082 -0.37826892733573914 0.4113815128803253 -0.5016819834709167 -0.9829010367393494 0.9999997615814209 -0.9999996423721313 -0.9868731498718262 0.7955707311630249 -0.23260381817817688 0.9232708215713501 0.8065171241760254 0.18524877727031708 -0.8443308472633362 -0.999821662902832 0.9999837875366211 0.9344598650932312 -0.7438681721687317 -0.059985361993312836 0.9880996942520142 -0.4906754791736603 -0.9541328549385071 0.1768958866596222 0.7426964044570923 -0.7915881872177124 0.3993636965751648 -0.3193826675415039 0.18202891945838928 -0.96065354347229 0.9561842679977417 0.9999996423721313 0.9915330410003662 0.9939414858818054 -0.6744449734687805 -0.999985933303833 -0.8012964725494385 -0.8825491666793823 0.9999991059303284 -0.8973557353019714 0.8201801180839539 -0.8504270315170288 -0.6049198508262634 0.9510065317153931 -0.9202731847763062 0.031998954713344574 -0.21962112188339233 0.8112547993659973 -0.9721460938453674 0.5213773846626282 0.4557180404663086 0.43956929445266724 -0.3752538561820984 -0.888515830039978 -0.14559964835643768 -0.25498855113983154 -0.8791975378990173 -0.21637055277824402 -0.5850264430046082 0.9907403588294983 -0.9756900668144226 -0.5901891589164734 0.5827773809432983 0.9887291789054871 -0.7827034592628479 -0.9980276823043823 -0.9446069598197937 0.35799640417099 0.8971256017684937 0.8345569372177124 0.9872134327888489 0.8446744680404663 -0.8980662226676941 0.9017423391342163 0.9874477386474609 0.47976911067962646 0.6087790727615356 -0.4231085181236267 0.774627685546875 -0.12663979828357697 -0.7913788557052612 -0.7522008419036865 0.9502325057983398 0.3865489065647125 -0.7678744196891785 -0.4341343939304352 -0.5380924940109253 -0.726986289024353 -0.3732304871082306 0.8505754470825195 -0.7128199934959412 -0.9635716080665588 0.4313960373401642 0.5905431509017944 -0.9593453407287598 0.9999517202377319 -0.047423139214515686 -0.8779793977737427 0.434285432100296 -0.6804378032684326 -0.931864857673645 0.8917952179908752 0.8410132527351379 0.3137333393096924 0.9844134449958801 0.9999803304672241 -0.2545738220214844 0.10795438289642334 0.7380183935165405 -0.1922210454940796 -0.9992724657058716 0.2085256576538086 0.9968580603599548 0.8848001956939697 0.0259757898747921 0.5025284290313721 0.992143452167511 -0.5813031196594238 0.9789150953292847 -0.9946166276931763 0.6038780212402344 0.9996442794799805 -0.017833450809121132 0.8502570390701294 0.8844924569129944 -0.6693323850631714 -0.39559367299079895 -0.3787575662136078 0.9988001585006714 -0.9707586765289307 -0.9598936438560486 -0.1848759651184082 0.9661588668823242 -0.9999997615814209 -0.9590307474136353 -0.6820422410964966 0.4535543918609619 0.9307982325553894 0.9047855138778687 -0.6549271941184998 0.2075624018907547 -0.9440926909446716 -0.6806420683860779 0.9284923076629639 0.9101653099060059 0.23280151188373566 -0.9731412529945374 0.1066470816731453 -0.9772707223892212 -0.14288340508937836 0.9985343813896179 0.7728769779205322 -0.6649512648582458 -0.7307573556900024 0.19919191300868988 0.37470269203186035 -0.6060610413551331 -0.2415405660867691 -0.9203264713287354 0.4053385555744171 -0.3029453158378601 -0.8317978382110596 -0.999924898147583 0.24592821300029755 -0.9926044940948486 -0.9735519289970398 -0.5635195374488831 0.7840177416801453 0.5001472234725952 0.9757433533668518 0.9667981863021851 -0.7450947761535645 0.8964029550552368 -0.7041819095611572 0.7007695436477661 -0.8855934143066406 0.8163792490959167 -0.7969844341278076 0.04006282985210419 0.35888972878456116 0.9655510187149048 0.9817612171173096 0.9132975935935974 -0.9997045397758484 0.9113511443138123 -0.8830175399780273 0.09559375792741776 -0.9661237597465515 -0.304609477519989 0.9458105564117432 0.5648765563964844 -0.6648879647254944 0.9787008166313171 0.7120909094810486 -0.9972509145736694 0.8816545605659485 0.3100334107875824 0.8709144592285156 -0.6982417702674866 -0.9905568361282349 -0.9622977375984192 0.920478343963623 0.24093274772167206 0.9852604866027832 0.9789227843284607 -0.9947898387908936 -0.9508786201477051 -0.9655733108520508 -0.521461546421051 -0.21184229850769043 -0.8942467570304871 -0.9649451375007629 0.5330729484558105 0.9528126120567322 -0.8233392238616943 0.7421345114707947 -0.33229169249534607 0.8950197696685791 -0.26295748353004456 -0.4722614288330078 0.27211815118789673 0.9947291016578674 -0.9564356803894043 -0.862645149230957 -0.578421950340271 0.01888084225356579 -0.6204273700714111 0.998664915561676 0.5113611221313477 0.9815801978111267 -0.9602653980255127 0.8365262150764465 -0.99765944480896 0.48085644841194153 0.07749468833208084 -0.9084720015525818 -0.9944719672203064 0.502585768699646 -0.9561976790428162 0.45684701204299927 -0.23952245712280273 0.34437739849090576 0.8960708975791931 0.7386347055435181 -0.19567790627479553 0.9850279092788696 0.36336809396743774 -0.6700283288955688 -0.48619765043258667 -0.21119756996631622 -0.9970929026603699 -0.714845597743988 0.9656341075897217 0.39625152945518494 -0.9443367719650269 -0.8631765246391296 -0.9060354232788086 0.9710288047790527 -0.9920799136161804 0.06527334451675415 0.9498118162155151 -0.44056224822998047 -0.9946985840797424 0.4582473635673523 0.9441670179367065 -0.8536892533302307 -0.5737138986587524 -0.9486724138259888 -0.6344839930534363 -0.806442141532898 -0.5241833329200745 0.9605574607849121 -0.6567226648330688 0.43025532364845276 -0.9368002414703369 -0.8930459022521973 0.1257985532283783 0.7199602723121643 0.8835282921791077 -0.46741315722465515 -0.5364854335784912 0.05011725798249245 -0.998184323310852 -0.5692845582962036 0.1308913230895996 -0.3187679052352905 0.991157591342926 -0.9211637377738953 -0.9780207872390747 0.012948987074196339 0.47846928238868713 0.6582932472229004 -0.6939226388931274 -0.7497844696044922 -0.7995192408561707 -0.9462617635726929 -0.9061853885650635 0.17881344258785248 -0.5288814306259155 -0.6702637672424316 -0.32280564308166504 -0.6556403040885925 -0.6820844411849976 -0.9417030215263367 -0.6969585418701172 0.7356280088424683 -0.8193172216415405 -0.9636833071708679 -0.39386528730392456 -0.98227459192276 -0.1732473224401474 0.7424246072769165 0.8631245493888855 0.8446297645568848 0.661628246307373 -0.1000562533736229 0.11912868916988373 -0.930314838886261 -0.6681265830993652 -0.5127339959144592 -0.9631960988044739 -0.9287228584289551 -0.6243830919265747 -0.22383268177509308 -0.610403299331665 0.9881303310394287 -0.6077278852462769 0.8018290996551514 0.8733826279640198 -0.6252200603485107 -0.8111875653266907 -0.9845139384269714 0.12918084859848022 0.30810144543647766 0.6917240023612976 -0.20337128639221191 -0.9010823965072632 0.04584202542901039 0.2769416272640228 0.6831340789794922 0.9643599987030029 -0.0738343670964241 -0.5285485982894897 -0.9959489107131958 -0.1677824854850769 0.707878828048706 -0.15005159378051758 -0.17830532789230347 -0.5197514295578003 -0.3991250693798065 0.8705835938453674 0.47301262617111206 -0.9609432220458984 -0.0012202406069263816 -0.48982784152030945 -0.9584190845489502 -0.5874254703521729 0.9851765036582947 -0.17956501245498657 0.2695736587047577 0.9936065673828125 -0.7271949648857117 0.13919365406036377 -0.7349790930747986 0.09224888682365417 -0.12987907230854034 -0.1956334114074707 0.9768327474594116 -0.6800012588500977 0.942849338054657 0.9983114004135132 -0.7158735990524292 0.7762774229049683 -0.6979033946990967 -0.9544880390167236 0.998313307762146 0.8387253284454346 -0.5979381799697876 0.9732781648635864 -0.9962338805198669 -0.5768777132034302 0.3111934959888458 -0.9806811809539795 0.5490792989730835 -0.9704998135566711 -0.8568569421768188 -0.8300834894180298 -0.3802473247051239 -0.9993224143981934 -0.9809104204177856 -0.7844351530075073 -0.9103618264198303 0.9961984753608704 0.8415830135345459 -0.35632240772247314 -0.9203447103500366 -0.9801372289657593 -0.8487303256988525 0.9992119669914246 0.7882379293441772 0.9637508988380432 -0.1181139349937439 -0.9939842820167542 -0.8367786407470703 -0.9275078177452087 0.9280791878700256 0.9394950866699219 -0.9754412174224854 -0.6457056403160095 0.7501323223114014 -0.5168886184692383 -0.9999563694000244 -0.6729233264923096 0.5930507183074951 0.05113082751631737 0.9960532188415527 0.9823747277259827 -0.9990538358688354 -0.7985106706619263 0.05654827505350113 -0.7989218831062317 0.3099343776702881 0.8054788112640381 0.8857780694961548 -0.9624959826469421 0.8352431058883667 -0.06078970804810524 0.9216829538345337 -0.9951520562171936 0.7656525373458862 -0.9963393211364746 0.9664700627326965 0.7959586381912231 -0.4494437575340271 0.9335331916809082 -0.9699562191963196 -0.9869033098220825 0.7453972101211548 0.7504234910011292 0.6420954465866089 -0.8767012357711792 0.6829721927642822 -0.46038520336151123 -0.9401053786277771 -0.8108955025672913 0.3895309269428253 -0.043038345873355865 -0.7580053806304932 -0.9920161962509155 0.9893329739570618 -0.44796523451805115 0.2987746596336365 -0.3825763761997223 0.05380028486251831 0.8753480911254883 0.25779908895492554 0.07436936348676682 0.9361664652824402 -0.9999999403953552 -0.39665791392326355 0.5413482785224915 -0.999697744846344 -0.9277567267417908 -0.48668399453163147 -0.6297008991241455 0.8848432898521423 0.4952944815158844 0.5058706402778625 0.1635206788778305 -0.5322824716567993 0.8232720494270325 0.3039889931678772 0.9493817687034607 0.8442288041114807 0.9470855593681335 -0.7164357304573059 0.36469516158103943 -0.15955296158790588 -0.593268871307373 -0.29146885871887207 0.36576467752456665 0.9600762128829956 0.878381073474884 0.8451375961303711 -0.8712663054466248 -0.42040160298347473 0.8785325288772583 0.6331701278686523 0.29876819252967834 0.30036741495132446 0.6164238452911377 0.8946568965911865 0.9142873287200928 0.43431198596954346 0.9999943375587463 -0.34061968326568604 0.9794090986251831 -0.04311942309141159 0.18999598920345306 0.9359302520751953 0.9057926535606384 -0.8814203143119812 -0.9611800312995911 0.9764112830162048 -0.9912668466567993 0.47883597016334534 -0.06473343819379807 -0.9889794588088989 0.5528304576873779 -0.9547997713088989 -0.8244439363479614 -0.9952574372291565 -0.9660494923591614 0.9999552369117737 -0.6872098445892334 0.9861253499984741 0.9922997355461121 0.9460961818695068 0.4440912902355194 0.46768224239349365 0.7275794744491577 0.5213912129402161 0.5511922836303711 -0.97222900390625 0.9985610842704773 0.14595158398151398 -0.9811967015266418 0.0736195519566536 0.47067877650260925 -0.17075499892234802 -0.9872300624847412 -0.6368799805641174 0.5988640785217285 0.48444119095802307 -0.8980672359466553 0.199056476354599 0.9557385444641113 0.99920254945755 0.9717817306518555 -0.3221698999404907 -0.08047066628932953 0.9504983425140381 -0.5628020763397217 -0.9229995012283325 -0.8803328275680542 -0.9216068387031555 0.6505997180938721 -0.6446037292480469 -0.1280864179134369 0.2951313555240631 0.9585732817649841 0.9949502348899841 -0.852258563041687 -0.37014898657798767 -0.39054757356643677 0.7164759635925293 -0.6389856934547424 0.6884057521820068 0.2077908217906952 -0.9545412063598633 0.6417083740234375 -0.99980628490448 -0.26535528898239136 0.0892522856593132 0.9341683387756348 -0.0009151434060186148 -0.42770475149154663 -0.9884812235832214 -0.6072179675102234 -0.5270208120346069 0.9425084590911865 0.9129794239997864 -0.9973864555358887 0.00977707002311945 0.9901169538497925 0.363246351480484 0.8630298376083374 0.5341669917106628 -0.8144526481628418 0.22669292986392975 0.8257372379302979 0.915549635887146 -0.026453392580151558 0.21849936246871948 -0.7647435069084167 0.7439509034156799 -0.6903718709945679 0.7866302132606506 0.7685999274253845 -0.7653053998947144 0.9392025470733643 -0.9974916577339172 -0.7670237421989441 -0.9958370923995972 0.2660253942012787 0.17121198773384094 -0.7630748748779297 0.1404159963130951 0.28270646929740906 0.5100486278533936 0.9434935450553894 -0.9872164726257324 -0.8071261644363403 0.9836534261703491 -0.9872904419898987 -0.10579302906990051 -0.01833653450012207 0.9848008155822754 0.19323410093784332 -0.9993048310279846 0.8751274347305298 0.8476707935333252 0.8673160672187805 0.6595625281333923 -0.9998824596405029 -0.9721536636352539 0.8864133954048157 0.9890181422233582 -0.8982598781585693 0.9430252313613892 0.5790783166885376 -0.9993761777877808 -0.9971609711647034 -0.9625687003135681 0.560340166091919 -0.8910725116729736 0.7720995545387268 -0.8514610528945923 -0.4364594519138336 0.8298332095146179 0.9319897890090942 0.9994664788246155 0.9484378099441528 -0.30762597918510437 0.5726138353347778 0.4902816712856293 -0.7953743934631348 0.7889729738235474 0.9796252846717834 0.9606612920761108 0.9814045429229736 -0.9939137101173401 -0.4945312738418579 0.7467591166496277 0.882141649723053 0.9975063800811768 -0.952223002910614 -0.8224234580993652 0.5417365431785583 0.481628954410553 0.7405650019645691 -0.7457913160324097 -0.18199411034584045 0.4535927176475525 0.8968894481658936 0.7240932583808899 0.9417133927345276 -0.9681783318519592 0.4786064624786377 0.6915328502655029 -0.7572372555732727 0.9977691173553467 -0.5883580446243286 0.9964455962181091 -0.9507564902305603 0.8241196870803833 -0.15832020342350006 0.7933403849601746 -0.9890522360801697 0.6826678514480591 0.7259552478790283 -0.16273419559001923 0.7531813383102417 0.9046143889427185 0.43225550651550293 0.9558872580528259 0.9971199035644531 0.13319064676761627 0.32739877700805664 -0.514929473400116 -0.972601592540741 -0.046106137335300446 -0.9004654884338379 -0.9158536195755005 0.45708733797073364 0.6393623352050781 -0.12532886862754822 -0.9291535019874573 -0.02173035778105259 -0.9139922261238098 0.41317129135131836 0.806341826915741 -0.7051169872283936 -0.9990842342376709 0.625900149345398 0.6285387277603149 -0.09035518765449524 0.9491853713989258 -0.9992695450782776 -0.31432515382766724 -0.8343636989593506 -0.9862086176872253 0.948631763458252 0.4833240211009979 -0.8521089553833008 -0.9991685748100281 -0.68143230676651 0.5300217866897583 -0.6733797788619995 0.9047862887382507 -0.9522925019264221 0.9999980330467224 0.7091704607009888 0.12478862702846527 -0.005288400687277317 -0.7668251991271973 0.6937593221664429 -0.7995538711547852 0.6073207855224609 -0.7013571858406067 -0.9999743700027466 0.9239199161529541
0.8896693587303162 0.8832470774650574 0.8470260500907898 -0.48153457045555115 -0.9268748164176941 -0.06753923743963242 0.582990825176239 -0.9036946296691895 -0.9771646857261658 0.6954324841499329 -0.9376125335693359 0.3836039900779724 -0.47454336285591125 0.46178025007247925 0.7551898956298828 -0.5359929800033569 0.8803865313529968 -0.029996201395988464 -0.6415513753890991 -0.4212028682231903 0.7316838502883911 -0.06716714799404144 0.512565016746521 0.5835496187210083 -0.2089279443025589 -0.2729965150356293 -0.7889553308486938 -0.39953112602233887 0.9528822898864746 0.5060333013534546 0.4614596366882324 0.11418572813272476 0.37183240056037903 -0.08371958136558533 0.9553926587104797 0.7808759808540344 -0.9434918165206909 -0.9184197783470154 0.36268627643585205 0.24987071752548218 0.09359589964151382 0.9125676155090332 0.9019143581390381 -0.6946656703948975 -0.3461403250694275 0.9009407758712769 0.4465281367301941 -0.45768699049949646 0.9864822626113892 0.0742441862821579 -0.0052188122645020485 -0.9018102288246155 1.0 -0.9999992847442627 0.827595591545105 -0.5133172273635864 0.269008994102478 -0.9417032599449158 -0.17918910086154938 0.2996601164340973 -0.1901814043521881 -0.999999463558197 0.9999756217002869 0.7314947843551636 -0.16958720982074738 -0.8138331174850464 -0.9767221212387085 0.08518926054239273 -0.4556334316730499 -0.5716592073440552 -0.8997507691383362 0.9678470492362976 0.9965128302574158 -0.07468829303979874 -0.6922919154167175 -0.7345758080482483 -0.9993890523910522 0.9999998211860657 0.4011426568031311 0.7367768287658691 -0.9004346132278442 -0.9964931011199951 -0.9310289621353149 -0.31189143657684326 0.9999998211860657 -0.9860568642616272 0.4869009852409363 -0.2551180422306061 -0.08096978813409805 0.9859205484390259 -0.4407765567302704 -0.00036653983988799155 -0.5300462245941162 0.8737057447433472 0.732725977897644 0.5932304859161377 0.9981770515441895 -0.9937539100646973 -0.9549738168716431 -0.39442867040634155 0.42376503348350525 0.8307873606681824 -0.19252413511276245 -0.18709835410118103 -0.043392762541770935 -0.955093264579773 -0.9549455046653748 -0.8742774724960327 -0.44394391775131226 -0.04936530441045761 -0.1386442333459854 -0.6912521123886108 -0.02248578891158104 0.9975598454475403 -0.6794479489326477 -0.49030277132987976 -0.2522599995136261 -0.7462274432182312 0.6704041957855225 -0.9465866684913635 -0.18841658532619476 -0.738387942314148 -0.06703883409500122 -0.9300032258033752 -0.9355714917182922 -0.8423395156860352 0.6235921382904053 0.9223110675811768 -0.8337697982788086 -0.3687756657600403 -0.08805060386657715 -0.7878618836402893 0.9525827765464783 0.11289863288402557 -0.8290132284164429 -0.9139195084571838 -0.6362956166267395 -0.8480525612831116 0.22217997908592224 0.4317634403705597 0.4015410542488098 0.9999994039535522 -0.592727780342102 0.3622453510761261 0.5055798292160034 0.7738016843795776 -0.6439129114151001 0.8497021198272705 -0.7103801965713501 0.8584573864936829 -0.2919616401195526 0.9999842047691345 -0.09729930758476257 -0.8608871102333069 0.9171764850616455 -0.2828408181667328 0.8486400842666626 -0.7789984941482544 -0.08177509158849716 -0.2221066802740097 0.7404536604881287 0.8288270235061646 -0.7841961979866028 0.9180330038070679 0.3056240379810333 -0.1564689427614212 -0.977502167224884 -0.9112671613693237 0.7288362979888916 -0.7368807792663574 -0.23789335787296295 0.8725690245628357 0.01083836704492569 -0.07518023997545242 -0.9937273859977722 -0.8642718195915222 -0.48374906182289124 -0.8345698118209839 0.5225523710250854 -0.9999999403953552 -0.7710323929786682 0.450210839509964 0.10509543865919113 -0.04696948081254959 0.8273393511772156 -0.5022635459899902 0.9659709930419922 0.855263352394104 -0.4074094593524933 -0.46423619985580444 0.041365403681993484 -0.957491934299469 -0.9485668540000916 0.7358525395393372 0.6773189306259155 -0.9814380407333374 -0.9927459359169006 0.011961164884269238 0.9055810570716858 0.9225699305534363 0.8984531760215759 0.613187313079834 0.8218086957931519 -0.9485511779785156 0.6276236176490784 -0.38777977228164673 -0.35701873898506165 0.5599191188812256 0.8570418953895569 -0.9581910371780396 -0.4265799820423126 0.8313701748847961 -0.6891390085220337 -0.9839830994606018 0.9454476237297058 0.7932367324829102 -0.8790428042411804 -0.7271523475646973 -0.37132978439331055 -0.5491460561752319 0.9781753420829773 -0.8587666749954224 -0.44261276721954346 -0.8962560296058655 0.07922559976577759 -0.18210557103157043 0.02587122470140457 0.5768194198608398 0.9713772535324097 -0.9264959692955017 -0.7196274995803833 -0.48527178168296814 -0.1818619966506958 0.9437264204025269 0.5227063298225403 0.9004912376403809 0.3741171956062317 0.2981598377227783 -0.9671230316162109 0.07098710536956787 -0.21250192821025848 0.8782861828804016 -0.5960053205490112 0.8997364044189453 0.3861641585826874 0.766683042049408 0.7851491570472717 -0.9620384573936462 -0.38036543130874634 -0.9073604941368103 0.9363588094711304 -0.23750638961791992 0.8401630520820618 -0.11829843372106552 -0.06772731989622116 -0.3212439715862274 -0.9319169521331787 -0.3666134178638458 -0.7705643177032471 0.9734148383140564 0.905114471912384 -0.8810809850692749 0.7549374103546143 -0.4861120283603668 -0.24481867253780365 0.5778032541275024 -0.5536175966262817 -0.5715457201004028 -0.9518483281135559 0.4045200049877167 0.15538182854652405 -0.355119526386261 -0.35577353835105896 0.9995786547660828 0.9999693036079407 0.47436338663101196 -0.8108996152877808 0.14067523181438446 -0.9423783421516418 0.3388528525829315 0.9557371139526367 0.9961785078048706 0.14629659056663513 0.29171210527420044 0.36792823672294617 0.209745392203331 -0.22538337111473083 -0.8555015325546265 -0.8671224117279053 -0.540762722492218 0.9989171028137207 -0.5255738496780396 0.743825376033783 -0.7953801155090332 0.9491598606109619 0.7075009942054749 0.9915339946746826 0.9977492094039917 -0.6045721769332886 -0.045698411762714386 0.24781930446624756 0.6915940046310425 -0.7628373503684998 -0.4245520234107971 -0.6007118821144104 -0.12981079518795013 -0.6013594269752502 -0.13913989067077637 -0.08144039660692215 -0.7561056613922119 -0.9791834354400635 -0.7357898950576782 -0.39872172474861145 -0.11880601942539215 -0.5629653930664062 -0.6136536598205566 -0.188564270734787 0.9864754676818848 0.6259472370147705 -0.37954914569854736 0.6647502779960632 0.9938568472862244 0.6183810830116272 -0.1887420415878296 0.9935302734375 -0.9219830632209778 0.8694994449615479 -0.954621434211731 0.2796267867088318 0.5701196193695068 0.20326000452041626 -0.6584718823432922 -0.44697853922843933 -0.9020400643348694 -0.9136108756065369 0.46995821595191956 0.3464488089084625 -0.04764354228973389 -0.7369722127914429 0.7823106050491333 -0.7213144898414612 -0.9056229591369629 0.253471702337265 -0.48443475365638733 0.6579179763793945 0.9755662679672241 -0.35678237676620483 -0.991943895816803 0.9960467219352722 -0.3763350546360016 0.6204361915588379 0.910436749458313 -0.6086244583129883 0.9973860383033752 0.06478647887706757 0.7016404867172241 -0.49826908111572266 -0.9510378241539001 0.5262529850006104 0.15726743638515472 -0.43724045157432556 -0.8312126398086548 0.7516762018203735 -0.7389088869094849 0.907259464263916 0.4783119559288025 -0.8508101105690002 -0.5290381908416748 -0.8305761814117432 -0.36508244276046753 -0.17078079283237457 -0.8939416408538818 -0.42899471521377563 0.6031889915466309 -0.6720989942550659 0.007645606994628906 -0.21454113721847534 0.0340188629925251 0.9952162504196167 0.7916244268417358 -0.9908820390701294 0.9257287979125977 -0.22297750413417816 -0.7370840311050415 -0.1743522733449936 -0.9997178316116333 0.5384455919265747 0.9998602867126465 -0.49143949151039124 -0.9948467016220093 -0.6886986494064331 -0.9363387227058411 -0.39739441871643066 0.9037657380104065 0.9088608026504517 -0.37392115592956543 -0.5530862808227539 0.14627408981323242 -0.8225791454315186 0.998174250125885 -0.10370267182588577 -0.27642926573753357 0.9968364238739014 -0.9081128239631653 0.2873985469341278 -0.776024341583252 -0.6586923599243164 0.9341197609901428 -0.6570237278938293 -0.7173213958740234 0.9158922433853149 0.9374533891677856 0.16292397677898407 0.9731050729751587 0.7902916669845581 0.9998342394828796 0.4612707197666168 -0.41359665989875793 0.44915226101875305 0.9768275618553162 -0.9745794534683228 0.9243906140327454 -0.9772957563400269 -0.8278793096542358 0.7532804012298584 0.9830660820007324 0.997543454170227 0.6419629454612732 0.8874454498291016 0.5888819098472595 0.9945730566978455 -0.23697936534881592 0.4582820236682892 0.9943633675575256 0.9894054532051086 0.6536290645599365 -0.8686103224754333 -0.1202421486377716 0.9771908521652222 0.4837663769721985 0.43941786885261536 0.038996774703264236 0.9912043213844299 -0.6136794090270996 0.5953570008277893 -0.7826200723648071 -0.8756542801856995 -0.3627159893512726 0.9097046852111816 -0.8861688375473022 -0.7086255550384521 0.9703980088233948 -0.19606958329677582 -0.7753630876541138 0.6101810336112976 -0.9453919529914856 -0.18651199340820312 0.27598315477371216 -0.8743771910667419 0.014964431524276733 -0.6720454692840576 0.9219585657119751 0.2369871586561203 -0.25741252303123474 -0.7685849666595459 0.3508319854736328 -0.5884362459182739 0.9964361786842346 0.4690740406513214 0.9722998738288879 -0.6404409408569336 0.791955292224884 -0.6757404804229736 0.8369230628013611 -0.9698655605316162 -0.9994902610778809 -0.8690861463546753 -0.7281482815742493 0.9570369124412537 0.13468950986862183 0.9287673234939575 -0.5534878969192505 0.7156580090522766 -0.7517982721328735 0.8147587776184082 -0.7605283856391907 0.8344301581382751 -0.906403660774231 -0.6686559915542603 0.227189302444458 0.6143816709518433 0.8688169121742249 0.5087792873382568 0.4674113690853119 -0.3089485168457031 0.34277772903442383 -0.996475875377655 0.46596866846084595 -0.6535179615020752 0.06659901142120361 0.012452634982764721 -0.7604787945747375 0.3751424252986908 0.376652330160141 -0.9999997019767761 0.039126425981521606 -0.9302862882614136 -0.9999917149543762 -0.7635801434516907 -0.5780671238899231 -0.8095709681510925 -0.933228611946106 -0.9757525324821472 -0.8661338686943054 -0.9741064310073853 0.40505102276802063 -0.013180164620280266 0.4401102662086487 0.954876184463501 -0.8402078151702881 0.76246577501297 -0.9462471604347229 -0.20640966296195984 0.7825446128845215 -0.8620516061782837 0.01629069820046425 0.8602814078330994 -0.9869681000709534 0.32493332028388977 -0.9163918495178223 0.8517377972602844 0.4862207770347595 0.460312157869339 -0.6132713556289673 0.42619672417640686 0.999477207660675 -0.8778412938117981 0.1712774932384491 0.8779802918434143 -0.05719870701432228 0.9999998807907104 -0.743443489074707 0.9750047922134399 -0.13080179691314697 -0.6356611251831055 -0.7553648948669434 -0.9921470284461975 -0.6579370498657227 0.07384365051984787 0.6980124711990356 0.9638034701347351 0.2772977352142334 0.13409122824668884 -0.999915599822998 -0.8117618560791016 -0.9987808465957642 -0.028468573465943336 0.9225546717643738 -0.5551491975784302 0.9999908208847046 0.5858702659606934 -0.988146960735321 -0.6349270343780518 0.39141392707824707 -0.8953941464424133 -0.5641095042228699 0.939079225063324 -0.9415410161018372 -0.9428526163101196 0.998981773853302 -0.8750746250152588 -0.06447084248065948 0.9901108145713806 -0.6151396036148071 0.247418612241745 0.487396776676178 -0.8203575611114502 0.6350705027580261 -0.993535041809082 -0.8922361135482788 0.4101157784461975 -0.9769547581672668 -0.992817759513855 -0.9538671374320984 0.9974531531333923 -0.8237963914871216 0.212729349732399 0.9845342636108398 -0.7875723838806152 0.8366407752037048 0.9497763514518738 -0.059829507023096085 0.05407901480793953 -0.7509769201278687 0.5521689653396606 0.9955877661705017 0.7851042151451111 -0.9031488299369812 0.8897368311882019 -0.15992477536201477 0.5504012107849121 -0.632779598236084 0.46887823939323425 0.634401798248291 0.21858075261116028 -0.5418187379837036 -0.00027228472754359245 -0.9998914003372192 0.863837480545044 -0.9829088449478149 -0.9979373812675476 0.5632930397987366 0.7183312177658081 -0.35831305384635925 0.6479994058609009 -0.8490413427352905 -0.46625950932502747 0.414314866065979 0.9845826625823975 -0.40151700377464294 -0.5996077060699463 -0.4898415803909302 -0.2550879120826721 0.03433229774236679 -0.10847887396812439 0.9347527623176575 0.3004417419433594 -0.4920714795589447 -0.633811891078949 0.9622215032577515 0.8769302368164062 -0.3160773515701294 0.34098678827285767 0.4695121943950653 -0.7201433181762695 0.5144777297973633 0.6362541913986206 0.9881685376167297 -0.5979170799255371 -0.9990066885948181 -0.7668299078941345 -0.1772558093070984 0.5962145924568176 0.5078144073486328 0.8558415174484253 -0.645675539970398 0.8448315858840942 -0.8756772875785828 0.5850603580474854 -0.40724924206733704 0.9956337809562683 -0.9786524176597595 0.7800963521003723 0.41060909628868103 0.765545129776001 0.6638113260269165 -0.7836817502975464 -0.2518058717250824 -0.9705650210380554 0.13159525394439697 0.9102344512939453 -0.8625173568725586 0.870396614074707 0.9496448636054993 -0.8103548288345337 -0.5971165895462036 -0.11749505996704102 -0.9915785789489746 0.9019360542297363 -0.5450011491775513 -0.39389488101005554 -0.740347146987915 0.8853766322135925 -0.8986360430717468 0.4822126626968384 0.3573469817638397 0.5703538656234741 0.9999769330024719 0.999890148639679 0.5864717960357666 0.4416935443878174 -0.11840201914310455 0.3487515151500702 0.7257137298583984 0.9806464910507202 0.581493079662323 -0.5432196855545044 0.9852182269096375 -0.6446601748466492 -0.9301329851150513 0.003302338533103466 -0.9663439393043518 -0.8185694217681885 0.8343368172645569 -0.5223144292831421 0.5796099305152893 0.250334769487381 0.3548717796802521 -0.9154093265533447 0.9890806078910828 -0.34800973534584045 0.19254395365715027 0.8844965696334839 0.8860912919044495 -0.08585051447153091 -0.2002754509449005 0.9269154071807861 -0.99857497215271 0.9822858572006226 -0.6639218926429749 -0.341656357049942 0.6134034991264343 -0.9620049595832825 0.6110255122184753 -0.8855754733085632 0.05515436828136444 -0.2397690713405609 -0.44543683528900146 -0.545314371585846 -0.7371342778205872 -0.35993149876594543 0.9870032072067261 0.8193817734718323 0.7713431715965271 0.04149239510297775 0.46430736780166626 0.2521642744541168 -0.8761440515518188 0.3756835460662842 -0.1784159541130066 -0.6035395264625549 0.016874289140105247 -0.5549731850624084 0.9961718916893005 0.06795378029346466 -0.37595075368881226 -0.1509331613779068 0.633590042591095 0.20524410903453827 -0.9998394250869751 0.9744579195976257 -0.8758386373519897 0.1870330274105072 0.9015195369720459 -0.9364199638366699 0.7898118495941162 0.8640446662902832 0.2113312929868698 -0.4822520315647125 0.82978755235672 0.9724472761154175 -0.9277102947235107 -0.998969316482544 -0.0221375934779644 -0.9266369342803955 0.27198877930641174 0.8816161155700684 0.9999992251396179 -0.23474368453025818 0.5558981895446777 -0.0823117196559906 0.9673608541488647 -0.21704278886318207 -0.9865131378173828 0.8262189626693726 -0.6523066163063049 -0.9983072876930237 -0.979491114616394
\ No newline at end of file
-0.9999996 -0.99999976 0.7464823 0.26190093 0.99882734 0.99224454 -0.98396343 -0.1550491 0.98472124 0.24696557 -0.94211745 0.93455917 -0.7709706 -0.98346823 0.96081734 -0.53134716 -0.9999987 0.7992136 -0.93530786 0.18795626 0.96776026 0.599174 -0.36398935 0.72184765 0.5629773 -0.8264277 -0.9993091 0.6465951 -0.9994982 -0.34436586 -0.99682015 -0.46144053 0.26049614 -0.91157293 -0.15715605 -0.96484333 -0.99185544 -0.8844316 0.5711392 -0.8861415 0.55280685 -0.9725583 -0.9884145 -0.6105719 -0.6943063 -0.99996597 -0.035208877 0.99789155 -0.9999948 -0.7707396 -0.7662399 -0.97295356 0.91681653 -0.9817521 -0.8908846 -0.9634708 0.8954031 0.90885466 -0.9828366 -0.63108706 -0.69924235 -0.99853617 0.3049102 -0.7859524 0.8874496 0.8355299 -0.72495127 -0.009251547 -0.9810612 -0.73396695 0.99556744 -0.98282963 0.9809165 -0.76369244 0.9865358 0.5558501 0.8439306 0.99999994 -0.9849674 -0.97747874 -0.13694188 -0.99828875 0.9803252 0.22258586 0.9999986 0.5228747 -0.9628072 0.3582112 0.99981576 -0.9999102 -0.9296224 -0.9585321 0.9174584 0.9483405 -0.12506256 -0.98687327 0.9830218 0.6675679 0.31190768 0.98297 -0.9317102 0.969314 0.75736636 0.0005392953 -0.12848575 -0.9999956 0.9690541 0.9639456 -0.5771089 -0.8322276 0.86732936 -0.38236716 0.8408818 0.99900186 0.99999917 -0.9085761 -0.6744564 -0.99569803 0.8132769 0.96150255 -0.941891 0.8366732 -0.16803885 0.05397815 -0.9985103 -0.2650953 0.9991294 0.99735314 -0.7614965 0.28173897 0.77189934 -0.2642052 -0.9991972 -0.05878756 -0.8610892 0.97117406 -0.97837037 0.95068914 0.9995053 0.9348121 -0.99946964 0.9999488 0.94206995 0.98759 -0.32359162 0.9609415 0.49755692 -0.84752977 -0.8944744 0.9844816 0.9596152 0.9990381 -0.60941756 0.98545426 0.9986889 0.43683383 -0.84200066 -0.99999994 -0.9999997 -0.99006736 0.9998777 -0.986243 -0.9998638 -0.9877872 0.9999999 0.79664016 0.9999965 -0.9634435 0.9874234 0.92701435 0.9949922 0.9993496 -0.9559502 0.98826057 -0.999996 -0.49984434 -0.860787 -0.9773132 0.9344116 -1.0 0.7986312 0.9999953 0.38643104 0.9399533 -0.86965716 -0.47826636 -0.9999981 0.94216955 -0.6407217 -0.98009783 0.9234738 -0.9921938 0.343801 0.53624654 -0.99940974 0.03290282 0.80813324 -0.47951952 0.13334192 0.48453817 0.9516866 0.8883521 -0.50865483 0.15917905 -0.65101886 -0.89054614 -0.5579637 0.9984827 0.9610339 0.39522704 -0.2456608 -0.6584333 -0.5763261 0.9384001 -0.9726414 -0.04404723 0.88984907 -0.9996221 -0.20034616 0.78449756 -0.9899155 -0.9843198 0.036999997 0.08710357 0.88665557 -0.87835586 -0.82367986 -0.47258234 -0.9998568 0.99999994 0.7142695 -0.4756812 -0.99999565 0.7955445 -0.9961389 -0.82131934 -0.8616471 0.72538173 0.87914145 -0.011613674 0.9146996 -0.061696436 -0.036390904 0.9702802 -0.9825873 0.27637437 0.76493794 -0.8171308 -0.99959695 0.81606984 -0.51034486 0.9688702 -0.9974816 0.897768 -0.9928595 0.9756938 0.87297636 -0.37093988 -0.98342705 -0.8904257 0.2561816 0.79321444 -0.8896864 -0.93101335 -0.15139575 0.999934 -0.99108505 -0.999877 -0.99794215 0.79634744 -0.9847246 -0.18377538 0.9879798 0.9705943 -0.9973005 -0.542032 0.5469598 0.9854491 0.9974362 -0.99460715 -0.95909524 -0.9370761 0.81242853 -0.25426814 -0.91487825 0.9248029 0.9898802 -0.9942482 -0.99992543 0.6834737 -0.99996716 0.7358486 -0.23396364 -0.7016493 -0.99265665 -0.94309485 -0.14704233 0.9290701 0.9862071 -0.8970095 0.6493393 -0.9702132 0.22056165 -0.5050298 -0.99998665 0.17864688 -0.9997163 -0.7984176 0.9940603 -0.9971843 -0.9998152 -0.41223034 0.843467 -0.97014976 -0.88469094 0.9971956 0.79990065 0.9997622 0.78307426 0.9941724 -0.8483116 1.0 -0.5542147 0.4779589 0.7337149 -0.34213772 -0.99304754 0.777297 0.5347721 0.95832634 -0.50393796 0.69240165 -0.9672747 0.9072874 0.8719386 0.97284746 -0.8481628 -0.03766227 0.9870898 -0.7670264 0.9372418 0.95426244 0.9251449 -0.31871116 -0.95657074 -0.9999258 -0.9617663 1.0 -0.9870997 -0.22301933 -0.893291 -0.027417928 -0.99694425 -0.67214584 0.93931335 -0.9769002 0.742321 -0.039228875 -0.6055964 -0.6225039 0.73901534 -0.7410415 -0.36469132 0.99937654 -0.99978995 -0.99261636 0.99967176 0.107055865 0.8824691 0.43361738 -0.806307 0.9664411 -0.9040189 0.3200726 0.8919171 -0.0063111335 0.7140658 -0.17702259 0.6402221 -0.65002614 -0.31308037 -0.7882725 0.86182547 -0.60527647 0.74393517 0.1414348 -0.9613406 -0.999247 -0.99791425 0.9994316 0.9999973 -0.7913457 0.9925075 -0.7862585 0.9999729 0.8639145 0.88744575 0.3448841 0.99975497 0.9999956 0.14128323 0.8194022 -0.99999 -0.9712986 0.7884053 -1.0 0.613635 -0.5002345 0.9999995 -0.21141128 0.61297214 0.42495537 -0.9612162 0.99203765 0.99940807 0.99999 -0.21254736 -0.5104406 -0.11088111 0.81674194 -0.025387725 -1.0 0.9667769 -0.38394532 -0.7006446 0.9997872 -0.7407464 0.81270695 -0.3829397 -0.5483378 -0.5606175 0.32759798 0.037516024 0.25903958 0.2546248 -0.55812865 0.6800835 0.93887407 0.99999976 0.7390952 -0.08582088 -0.83988994 0.44531792 -0.9482668 -0.9904898 0.60985327 -0.9999717 0.68393433 0.76016027 -0.9998777 0.6373762 0.554906 0.9203156 -0.9941 -0.33640042 0.5490265 -0.8859319 -0.7483531 -0.60417205 -0.35821754 0.99950826 -0.9822146 0.92509717 0.9997182 -0.9142707 0.8750628 -0.8864974 0.96695524 0.050982136 -0.32697338 0.97914696 0.9597911 -0.8224399 -0.086323306 0.9986923 0.99700576 0.9999571 -0.66337144 -0.9880004 -0.98822665 -0.9285517 0.9439429 -0.813665 0.92992723 0.0435003 0.8674388 -0.858302 0.3592352 0.48765385 0.9973416 -0.59253395 0.9980575 -0.6234335 0.8888223 1.0 -0.90638554 -0.8238834 -0.887793 0.55098134 -0.46749577 0.9365004 0.99999756 0.98645276 0.9963643 -0.99124473 0.20890717 0.84414196 -0.99896044 0.043204986 0.35180712 -0.3913442 0.96173316 -0.99994963 0.98483396 -0.3526374 -0.48807016 0.7030541 0.86324173 -0.999657 1.0 -0.19560239 -0.02483944 0.81877965 -0.6940694 0.7425308 -0.04210296 -0.8856309 0.9818401 -0.5059563 0.058416035 0.9947061 -0.9964463 -0.9889349 -0.9966836 -0.5971371 -0.3408692 -0.98257047 0.98759735 -0.99984884 -0.66849303 0.99978584 -0.43159893 0.98295754 -0.67712826 0.99685717 0.22454375 0.77271765 0.9345002 -0.86370915 -0.97842944 0.99263424 -0.96285576 0.7594407 -0.9999999 -0.9857308 0.99956304 0.088137954 -0.9940365 -0.11775985 0.9999995 -0.9704625 -0.99265856 -0.9998002 -0.43123624 0.70241785 0.2569476 -0.9780171 -0.9987542 -0.37539998 0.99941367 0.8016213 -0.804145 0.99908704 -0.58782053 -0.299592 -0.7959964 0.61493313 0.956171 0.9800685 -0.9060211 0.9751301 -0.99983305 0.9818583 0.3387774 -0.20004997 0.4156333 0.43810004 0.9602678 -0.17848623 0.99985087 0.031199053 0.17568704 -0.86900806 0.5654406 -0.6662108 -0.9962577 0.9236386 0.94727737 0.36320144 0.9783465 -0.73376894 -0.6707167 0.4467864 0.84018373 0.8836775 -0.69951403 0.86605287 -0.78357357 -0.3267973 -0.83941823 0.30313042 -0.9020773 -0.398471 -0.9325129 0.3202639 0.9999571 0.10228112 0.11844332 0.026530823 -0.8712301 0.85778224 0.99120545 -0.9632989 0.7574462 -0.3854892 0.99968296 0.932957 -0.6697881 -0.892535 0.6802242 0.030642956 -0.590015 0.9064936 0.89446014 -0.9271588 -0.9945867 0.9537045 0.9760227 0.96483153 -0.18965 -0.96911067 0.43051276 -0.999972 -0.9650461 -0.83888996 0.28228587 0.7999373 0.97009003 0.46010658 0.98842466 0.5226108 0.9999998 -0.71271086 0.86709696 -0.57405806 0.99999994 -0.9996852 -0.31886744 -0.9773809 0.9870387 0.98529947 -0.99475884 0.94970345 0.9940221 -0.99644685 0.9572941 -0.47849235 0.9964416 -0.96329325 0.7009461 -0.96649945 -0.18342772 0.9978749 -1.0 0.3621334 -0.92483336 -0.4660979 0.10450533 0.999879 -0.09796299 0.7143076 -0.011363092 -0.7378187 0.6563183 0.9999115 0.9630722 0.97993815 -0.998375 0.80801666 0.99947596 0.957679 0.5984334 0.46417788 0.91205466 -0.96548826 -0.8799149 0.4062889 -0.98884904 -0.9900354 0.08536786 0.7801093 0.28501278 -0.80345416 -0.34468198 -0.9196621 -0.08567765 0.8379185 0.64048684 -0.99924475 -0.48048 -0.6373831 -0.5542592 0.986716 -0.84819543 0.29756227 0.97029734 0.9290468 0.8446741 -0.45939556 -0.3641295 0.972972 0.62861776 0.99170387 -0.9933991 -0.23266746 0.8873917 0.9999533 -0.99878824 0.98716784 0.7867317 -0.3839861 0.7206862 -0.9961034 -0.9999999 0.8776988 0.9147165 -0.9215074 -0.41850176 -0.48614085 -0.999861 0.98268306 0.777575 -0.25380877 0.27481636 -0.9998148 0.8223573 -0.9947689 -0.8654315 -0.9350784 0.99935997 0.6870328 -0.9355272 -0.6848128 0.80867624 -0.9897474 -0.16326816 -0.99988085 0.9999996 0.9043831 -0.5447714 0.72627795 -0.9817264 -0.9628735 0.9994124 -0.99798244 -0.530462 -0.98897725 -0.98294145 10
-1.0 -0.99999994 0.861253 -0.87232006 0.87707037 0.9846854 -0.15923856 -0.4746124 0.9791797 0.31686354 -0.8738041 0.9361206 0.9678898 0.2718519 0.6078135 -0.8873675 -1.0 -0.25491184 0.90562093 0.98548627 -0.25893763 0.82110035 -0.9279279 0.6717305 -0.9639 0.36029917 -0.35398635 -0.8624752 -0.9998187 -0.16041969 -0.6607764 0.994765 0.59384894 -0.9449852 0.55582285 -0.99597913 -0.9983927 -0.2982019 0.5763202 -0.89511603 0.5776253 0.9006849 -0.9929929 -0.43227085 -0.48781726 -0.9999999 0.5846884 0.99984175 -0.9999881 0.21122259 0.48543936 0.9530851 0.9996144 -0.96687007 -0.92406684 0.43783173 0.99784356 0.836946 -0.9673491 0.95490044 -0.96033525 -0.639424 0.99932504 -0.7587088 -0.02877565 -0.3124599 0.86427927 0.87509954 -0.9854475 0.3866047 0.711655 0.35292402 0.9959776 -0.9923113 -0.8311079 -0.99151635 -0.96520805 1.0 0.6056486 -0.9994575 -0.024074014 -0.9957613 0.94760084 -0.35848352 0.99999994 -0.5823084 -0.4116499 0.65768737 0.77409786 -0.9980793 0.57961196 -0.95170563 -0.5957662 0.89982045 -0.9452998 -0.9982759 0.9252796 0.5818326 0.9175957 0.999685 0.68924093 0.9972326 -0.982449 -0.7676433 0.5741737 -0.9994562 -0.72572476 -0.99968785 0.9529619 -0.9822524 0.75102943 0.9889801 0.6725978 0.93702406 0.99984485 -0.9696 -0.33019102 -0.99711686 -0.9365542 0.99915814 -0.9999805 0.9998186 -0.99577105 0.3897759 -0.988402 0.9990641 0.47782817 0.5964483 -0.9041794 0.9648125 -0.7103083 0.88620394 -0.4784212 -0.7051694 -0.48189136 0.76285255 0.13550495 0.94101644 0.9999658 -0.30611748 -0.99736625 0.9999149 -0.029093934 0.6952026 0.91490006 0.97914207 0.99679595 -0.9918896 0.33245438 0.9782857 0.99645066 0.4469083 -0.60557663 0.2897245 -0.6740104 0.9677514 -0.81783354 -1.0 -0.99978894 0.9439885 0.98708373 -0.99986726 -0.84077764 -0.8311883 1.0 0.9994914 0.99999535 0.616006 0.95644915 -0.9969562 -0.9897216 0.9999999 0.43236017 0.99992925 -0.99999857 -0.7999574 0.7560661 -0.8675876 0.7308039 -1.0 -0.9010381 0.9998843 0.99958193 0.95873386 0.053211667 0.547405 -0.9999989 0.86305636 -0.98179686 -0.998526 0.9891447 -0.6447107 -0.96614265 -0.6853564 -0.9999764 0.13205002 0.8264576 0.94986314 0.991333 0.07223279 -0.63065326 0.36383042 0.9855343 0.62223774 0.9426583 -0.56665504 -0.92484653 0.99997014 0.69048536 -0.7943892 -0.96167 -0.991879 -0.5531684 0.89657813 -0.8969892 -0.9668782 -0.97465944 -0.3445753 0.8762517 0.995812 -0.99999523 0.9940822 0.8861319 -0.88591206 -0.005518239 -0.9934161 -0.59367156 -0.793103 -0.999361 0.99999994 0.97672784 -0.8662577 -0.9996668 0.26618227 -0.996645 0.95769376 -0.031923905 0.65077573 -0.99899805 -0.9905279 0.8841066 -0.999955 0.99167717 0.45077893 -0.76970613 0.13504386 -0.71369064 0.44205126 -0.6343714 -0.6874547 -0.99989873 -0.80424255 0.9980704 0.98793834 -0.85082394 0.93637824 -0.9365043 0.9957499 -0.8970781 -0.99732834 -0.42377234 0.9600287 -0.9994265 -0.73456 -0.9674004 0.9714856 -0.92372835 0.70620835 -0.99999934 0.86241025 -0.6190572 -0.14197773 0.9999001 -0.99347943 -0.6027776 -0.65794164 -0.8978773 0.3942305 0.9898826 0.62932646 0.9806683 -0.8385376 0.40610582 0.45982456 -0.75273347 0.5999118 0.9987997 -0.9999967 -0.9997058 0.7695451 -0.9999975 0.7818959 -0.8304927 0.9414118 0.46048585 0.45358494 0.6396072 -0.9866495 -0.9144274 -0.99980813 0.25548247 -0.99955016 -0.9684867 0.89514637 -0.9998826 0.9774072 -0.9999352 -0.542104 0.6350843 -0.9999958 -0.9998883 -0.08815576 -0.15676637 -0.99996597 -0.7744755 0.9999845 -0.9162329 0.94710314 0.6295798 0.9627228 0.032681074 1.0 -0.5037061 0.91861165 0.4412827 -0.8833764 0.66551924 0.9369093 0.9990878 -0.6083858 -0.70119417 0.8508959 -0.3032786 0.96477604 0.78955543 -0.8526563 -0.98271585 -0.8297411 0.56428945 -0.9124444 -0.85694 0.9989574 0.978685 0.52305496 0.9830306 -0.9999888 -0.9773196 1.0 -0.9943907 0.015994724 -0.9899527 -0.8339331 0.45227242 -0.9662757 -0.3929845 -0.7081479 0.99805963 0.91179335 0.81453043 0.78437245 -0.6458897 -0.041685518 -0.8966886 0.98622626 -0.9999867 -0.99901915 0.98923916 0.48277265 0.9997649 -0.102836445 0.9941163 -0.66067076 -0.9761921 -0.5157238 -0.84268445 0.67284 0.5513592 0.28027335 -0.99118257 -0.36128527 -0.9935303 -0.9963435 0.009010199 -0.84623015 -0.88842773 0.9675918 0.40518668 0.51404107 -0.9545223 0.87848383 0.9998668 -0.0001540631 0.99996793 -0.027640095 0.99855393 0.9332155 -0.15046756 0.9996656 0.999967 0.99994224 -0.45889324 0.91010606 -0.9999643 -0.99242955 -0.81407154 -0.99999994 -0.7989793 -0.90471387 0.99978316 -0.78657734 0.43596515 -0.33734623 -0.044995904 -0.9976887 0.997003 1.0 -0.16864905 0.8522073 -0.93083054 -0.07989181 -0.9111196 -1.0 0.82976615 0.7342242 -0.98252606 0.99999934 -0.9992159 -0.7945781 -0.73776317 0.3091122 -0.99779594 0.22934948 -0.9893379 -0.98060346 0.97332853 -0.99184847 0.495695 0.9743462 0.99999976 -0.25296494 0.91502994 -0.79748654 -0.520522 0.11454225 -0.9850931 0.5547855 -0.9999286 0.801373 0.9358891 -0.8819119 0.99702996 -0.9949707 -0.7691838 -0.99535704 -0.6704862 0.40174642 -0.51824033 0.9454088 -0.13661444 -0.9978418 0.99998945 -0.99931157 0.7648544 0.9999988 0.95760316 -0.9678365 -0.8385303 0.99276346 0.87331283 -0.7612694 0.95817703 -0.64426285 0.08887601 0.92776346 0.9978375 0.99998623 0.9999963 0.9842445 -0.5125139 -0.40386063 -0.9999728 0.8788405 0.19582738 0.945124 -0.39685306 0.6581011 -0.99548525 -0.95672965 -0.6113797 0.9999946 -0.235131 0.23325644 0.037081752 -0.86839247 1.0 -0.3634331 -0.9954557 -0.9997541 -0.9712228 -0.824309 0.8048393 0.99998546 0.7748191 0.9972039 -0.71599746 -0.47030598 0.94472134 -0.9999981 -0.7379463 -0.9335679 -0.2330901 0.9147815 -0.99218005 0.99997336 -0.96421385 0.1348411 0.8731537 0.120659195 -0.061737124 1.0 0.988439 -0.10978973 -0.5302836 -0.012398643 0.9998399 0.99958247 -0.9714188 0.9998863 0.99014723 -0.5329412 0.9989423 -0.62269676 -0.9917919 -0.99714357 0.35939497 -0.95196867 -0.589679 0.9931812 -0.99996996 0.6966434 0.99966073 -0.84645987 0.29207036 -0.92298436 0.99999726 0.9136649 -0.9129045 0.92813873 -0.9325623 0.9900006 -0.9975448 -0.41972592 -0.16687734 -1.0 -0.99773216 0.99999017 -0.98137563 0.48625058 0.48366496 1.0 -0.9202739 -0.4738951 -0.9989145 -0.91275007 -0.9999883 -0.9677593 -0.9528756 -0.99272305 0.5378287 -0.6125573 -0.9997202 0.3593759 0.99692214 0.619658 0.5524737 -0.43884167 -0.9914673 -0.25749648 0.9467681 -0.64137626 0.6168921 -0.99994713 1.0 -0.9879018 0.9986973 -0.8189421 0.8092543 0.96701795 0.24381833 0.9879058 -0.9796335 -0.54112506 -0.27352726 0.9999461 0.70484495 -0.9578159 -0.9494289 0.9690891 -0.99342734 0.85424787 0.9982849 0.5608907 -0.8947477 -0.99762267 -0.95799404 -0.71713436 -0.73008287 -1.0 0.18428782 -0.9607805 -0.55932987 -0.6675954 -0.96094894 0.18206286 0.9996107 0.77844393 -0.16571875 -0.9878256 -0.18622628 -0.9948394 -0.9998803 0.55615044 0.15725026 0.8491897 -0.70461977 0.9931852 -0.19020908 -0.5239089 -0.18875004 -0.9788987 0.99165356 -0.58988273 -0.9802137 0.47555473 -0.9782058 -0.9059396 -0.7701809 0.59487313 0.19399025 0.95555043 -0.9883152 0.5252147 -0.99886614 -0.95843226 -0.99023926 0.38420722 0.87027967 0.6648879 0.96617573 -0.9148593 -0.9088768 0.9999995 0.03536333 -0.992953 -0.96290314 1.0 -0.96961313 -0.657717 -0.9762115 0.999998 0.2720103 -0.7562417 0.6274352 -0.13608414 -0.99897337 0.9450815 0.48330113 0.6828871 -0.56894773 0.9998528 -0.9325012 -0.14559492 0.812606 -1.0 0.6776485 -0.92579645 -0.9325344 0.8784516 0.99996704 -0.7753072 0.97590935 0.8781065 -0.93974745 0.94358927 0.99999905 0.5490638 -0.9675621 -0.99739283 -0.26036903 0.9999899 0.98820853 0.5840416 0.9525333 -0.68502706 -0.9574324 -0.9999278 0.74879825 -0.37200403 -0.014831722 -0.8261186 0.9276472 -0.3233502 -0.98040277 -0.5311965 -0.74019706 0.9991519 -0.855747 -0.9834543 0.5474488 -0.9636575 -0.99117076 0.9995922 0.99977 -0.97824466 0.8503215 0.9996953 0.7342107 0.32872963 0.99459916 -0.97397786 0.9995895 -0.99964845 0.39222452 0.43976766 -0.7969946 0.9986338 0.9850626 -0.9796855 0.9986643 0.9266124 -0.89628166 0.9857436 -0.9855825 -0.9999918 0.5043086 0.89693743 0.70969737 -0.13805032 0.9960505 -0.9999914 -0.5118247 0.9985588 0.7099786 0.3681363 -0.66986704 0.583156 -0.9853768 0.867618 -0.9373006 0.9950337 0.9551261 -0.61257863 0.97937214 0.9996633 0.02483013 -0.9704038 -0.9996436 0.9999997 -0.82056165 -0.5455574 0.87375474 0.9599962 0.82317066 0.99999857 -0.9999903 -0.2752136 -0.9999591 -0.9787967 7
-0.9999951 -0.99999976 0.95822835 -0.9401822 0.70639956 0.17090313 0.8962164 0.9992448 0.9984478 0.9388478 -0.070969135 0.7563076 -0.2811864 -0.9906763 0.8571024 -0.87859625 -0.9999977 -0.74692476 -0.8592796 0.9629334 0.49413607 0.9515388 -0.73440456 0.6255147 -0.78742826 -0.87238276 -0.6412926 -0.55872 -0.9987277 -0.6681056 -0.99126786 0.92537165 -0.80339783 -0.870118 0.26189858 -0.6993501 0.8261047 -0.75431275 -0.8472181 -0.8377739 0.98536974 -0.57739997 -0.99739397 -0.1714283 -0.6942893 -0.9996594 0.09095104 0.9996369 -0.99921405 -0.5740067 0.725844 -0.983364 0.9996654 -0.99989843 -0.9673004 -0.15831763 0.87203026 0.9980251 -0.88529253 0.8898124 0.1459503 -0.9992276 0.57568645 -0.98766613 -0.18510246 0.16631982 -0.99676055 0.89217746 -0.27819845 0.9040275 0.68812835 -0.6341443 0.99224794 -0.99898297 0.9795813 -0.39177555 0.98426646 1.0 -0.6391196 -0.9988377 -0.26537478 -0.75129837 0.9979658 0.89623743 0.9999822 -0.375414 -0.39410964 0.7378365 0.999532 -0.98740375 0.8467978 0.28390783 0.88889885 0.9625261 0.43300492 -0.9971712 0.99885297 0.9428949 -0.7121048 0.8633507 -0.7664782 0.9493737 -0.99978703 -0.85750914 -0.3645673 -0.98187685 0.9599035 0.12944302 -0.28388882 0.68185544 0.97710633 0.6252208 0.79273385 0.9998504 0.9998042 -0.8820492 -0.9094823 -0.5409297 0.93802476 0.14684552 -0.9776867 0.97180253 0.1600124 0.9508957 -0.95061976 0.99121916 0.8536577 0.96130097 -0.9981054 0.18956496 0.98888516 0.7043439 0.6296345 0.96158206 0.7943459 -0.24288784 0.43793866 0.508417 0.9999886 0.6963072 -0.9878443 0.9999706 -0.92439485 0.9700092 -0.9201988 -0.17146564 0.9752187 -0.4221158 0.31414276 -0.62211525 0.9838363 0.9866947 0.19075704 0.80606717 0.847503 -0.7044666 -0.9973554 -1.0 -0.9999805 -0.9967003 0.9999572 0.29149398 -0.98900753 0.6998749 0.9999968 -0.9293352 0.99980253 -0.82567525 0.99216545 -0.97926813 0.9997588 0.9976438 0.99938405 -0.63786125 -0.99999964 -0.9974871 -0.9596241 -0.77964103 0.78434044 -1.0 0.86864746 0.9999949 0.9992376 -0.82457966 -0.6490568 -0.6825315 -0.9999998 0.94836915 -0.5364281 -0.97449803 0.7171937 -0.94906133 0.024583235 -0.5337564 -0.99887115 -0.62495637 0.26330885 -0.7071099 0.2016142 0.3404491 -0.91016716 0.18863633 0.5009901 -0.09289483 -0.3593571 -0.9335352 0.66753113 0.9744621 0.2993764 0.674559 0.0016407756 0.7192247 0.021446005 -0.9888994 -0.8289231 -0.72802174 0.99248075 -0.9083475 0.4101726 0.97129375 -0.99970055 -0.74696004 0.61812675 -0.29725504 -0.96224564 0.49351212 -0.9073436 -0.9941409 -0.84919345 0.9999879 0.73564065 -0.97884035 -0.9999841 -0.5016713 0.5225544 -0.5802425 -0.9047674 0.80179006 0.8749753 -0.5456782 0.9329188 -0.30150998 -0.44962868 0.9838767 -0.7274188 -0.51412785 -0.820442 0.06530742 -0.99646044 -0.8849344 0.9984626 0.27693996 0.17288224 -0.98203456 0.6967515 0.34116653 -0.96386206 -0.24144362 -0.9484569 -0.80263376 0.5277124 0.27874097 -0.99630743 -0.7654679 -0.9089872 0.9836185 -0.9957832 -0.96875334 -0.9999535 0.97835696 -0.990858 0.96273035 0.83290607 0.9625422 -0.94848025 -0.9206523 0.29722098 -0.4742824 0.98722374 0.29264665 0.23851055 0.9553516 0.35788348 0.37155747 0.49395692 -0.2949057 -0.044860274 -0.9937894 -0.99988866 0.18339083 -0.9963302 0.927169 -0.06660336 -0.6488731 -0.99761164 0.9464657 0.8059706 0.458324 -0.6650787 -0.9402804 0.8914567 -0.5532423 -0.016352115 0.40897688 -0.9999961 -0.94794095 -0.9932794 0.5652266 0.9853004 -0.95268536 -0.99144614 -0.93894583 0.8637495 0.17159162 -0.15770699 -0.48052144 0.9425236 0.8943756 0.6595906 0.8633188 0.68555236 1.0 0.23448102 0.7314807 0.38120034 -0.2553271 0.5063757 0.93986124 0.99302715 0.94951266 -0.7691618 -0.5243386 -0.960446 -0.8708692 0.8326073 0.89991635 -0.6339335 -0.9830431 0.82836175 0.05847553 0.9674429 0.9941363 0.9999274 0.012185346 0.28084907 -0.99034774 -0.9913894 1.0 -0.5088554 -0.6540568 -0.25255656 0.6353202 -0.8506984 -0.7808906 0.91091853 -0.9809151 0.9874063 0.09377201 0.48971784 0.64927363 -0.28928673 -0.640077 -0.36463624 0.9971061 -0.99937975 -0.8925509 0.99859965 -0.9273328 0.9906183 0.72207034 -0.461934 0.7468904 -0.407597 0.47512138 0.9461485 -0.5093058 0.8352953 0.6555752 0.1396356 0.71985674 -0.7340392 0.65959394 -0.8334553 -0.8477057 0.84242564 0.98858625 -0.6253541 -0.9625761 0.99068344 0.96155524 0.99998707 0.6428404 0.97727114 0.942651 0.99968994 0.85567725 0.9772945 0.6902768 0.9889975 0.9999971 -0.7121463 -0.16505207 -0.99999887 0.28018767 0.9104858 -1.0 -0.9124882 -0.9786788 0.99999946 -0.72833526 0.9888071 0.52872014 0.85312116 -0.7408253 0.9762955 0.9999969 -0.93567353 -0.9131212 0.7465254 0.9367622 0.091815576 -1.0 0.765314 0.82581633 -0.26493356 0.9119861 -0.7051116 0.4239544 -0.4623476 -0.7443297 0.96559906 -0.6608213 -0.74508786 -0.95902467 -0.95437294 -0.3764868 0.99468 0.9052037 0.9999995 0.55582464 0.49307624 0.53958404 -0.7081214 0.55388975 -0.9411977 0.53559846 -0.99999654 0.08903746 -0.27203885 -0.98496526 -0.30267978 0.87730664 0.8572307 -0.9998082 -0.96234584 0.9847348 0.93772745 -0.7002225 0.5649048 0.92706513 0.9998688 -0.59901285 0.30456343 0.9671276 0.9368431 0.82420933 -0.9810679 0.7879048 0.91152817 -0.773408 0.9636428 -0.69949293 -0.7370677 -0.5140637 -0.118148886 0.9862911 0.99667937 -0.1400243 -0.68636775 -0.19268239 -0.92619383 0.9403171 -0.6317648 0.9823614 -0.14271007 0.06264299 -0.3037733 0.8743688 0.20092101 0.95671827 -0.9560446 0.8265228 0.42938036 0.96048415 0.99999994 0.9850731 -0.41201204 -0.92655265 -0.8731364 -0.43600833 0.85405385 0.99999994 0.9879444 0.9850555 -0.99982345 -0.24279094 0.30105305 0.15705857 0.3982488 0.02020938 0.5862727 -0.07123946 -0.99936885 0.9982425 -0.92731154 0.16844267 -0.63556176 0.71663046 -0.83864594 0.99999994 0.9863946 -0.68274784 0.8951261 -0.99640334 0.20469649 0.24729143 -0.74868864 -0.27927846 0.79546386 -0.74495196 0.86928713 0.035086244 -0.94772923 -0.9951837 -0.22602865 -0.89202857 -0.71226645 0.9987371 -0.9999994 0.28068164 0.9999911 -0.97203165 -0.7376353 -0.59287375 0.9993925 0.70757234 0.47924548 0.9882427 -0.88392204 -0.5671518 0.8101712 -0.99099237 0.04141862 -0.999998 -0.1613636 0.9999597 -0.9765933 0.8762785 0.93059665 0.9999974 0.06284889 -0.9776955 -0.95226264 0.85208154 -0.94038635 0.66749716 -0.871272 -0.9808779 0.73789877 0.28879806 -0.96408856 -0.56287813 0.9939444 0.5068241 -0.22175638 -0.23610887 -0.393036 -0.43484804 -0.16861232 -0.91910285 0.9556047 -0.99998075 0.9829365 -0.9354816 0.72561586 -0.41051885 0.190821 0.034053687 -0.29388365 0.9992922 0.26534143 -0.6662949 0.66250336 0.98965824 -0.592342 -0.90175194 0.9410964 -0.741959 -0.7166726 0.038292218 -0.4262149 -0.2728008 -0.65158415 -0.9492625 -0.42577782 -0.9619767 0.29273742 -0.98695934 0.8026135 -0.52412343 -0.76749027 -0.66884255 -0.9565645 -0.58313996 0.24593312 0.9993315 -0.9689991 -0.81582165 -0.9462928 -0.97780454 -0.9286839 0.72404665 -0.96089226 -0.35656402 0.39617553 -0.085608914 -0.021281201 -0.67899513 -0.9203627 0.5581672 0.18138508 -0.8879209 -0.5157223 0.96993977 -0.98352665 -0.8515311 -0.8099058 0.990936 -0.29178733 -0.9607829 -0.9593418 0.33493912 -0.99978966 0.09479618 -0.9908078 0.8813218 0.7579266 0.8952549 0.8693743 0.3336298 -0.6538803 0.9998963 -0.8602133 -0.20453326 0.9589851 1.0 -0.9921912 0.6291473 -0.999365 -0.13862921 0.99931735 -0.96379924 0.9916489 0.99816775 -0.99996495 0.92165995 -0.49494326 0.9774274 0.90946907 0.92925924 -0.6593096 0.92141044 0.99774987 -1.0 0.9810174 -0.7348844 -0.9317752 0.88644826 0.9962971 -0.47655052 0.2508808 0.7962885 -0.8370363 0.84990066 0.9972844 -0.38989967 0.8910098 -0.72178084 -0.5095671 0.9999979 0.89537406 -0.84986186 -0.9936068 -0.6175725 -0.3233684 -0.9428265 0.4405028 0.0020548394 -0.9785983 -0.4026298 0.9429546 0.68682057 -0.8662708 -0.14096825 0.49570084 0.97217506 -0.99961555 -0.9851047 -0.4894182 -0.43762428 -0.57241666 0.8514142 -0.6522546 -0.70432025 0.064868905 0.99337 0.34326044 0.5162643 -0.85035586 -0.18178047 0.40990892 -0.93735385 -0.7044486 -0.9690089 -0.55945057 0.5198264 0.99999595 -0.98538154 0.9987173 0.9800292 -0.75237817 0.97018856 -0.7200092 -0.99999994 0.83206344 0.047464635 -0.7420989 0.88076895 -0.23806112 -0.99616414 0.83982223 0.88053477 0.016302923 0.49791533 -0.65800023 0.95552284 -0.63033485 0.6393318 0.88865024 0.4003679 0.9797135 -0.9854284 -0.44182727 0.82368326 -0.5786829 0.20527247 -0.55584764 0.99999994 0.9892633 0.99615836 0.8421849 0.973938 0.87048125 0.8403708 -0.9991925 0.8909787 -0.9990413 -0.70731044 8
-0.9999052 -0.99999976 -0.8168801 0.5486632 0.98653907 0.685163 0.72243583 0.9929286 0.16788787 0.8879151 0.6181817 0.5967672 0.16928469 0.38567027 0.9733204 0.96590513 -0.9999998 0.8337304 -0.99762154 0.8503464 0.9437142 -0.6026158 0.39054903 -0.34520158 0.96433645 -0.881304 -0.9990994 0.6066567 -0.99868447 -0.82789534 0.32280052 0.6529986 -0.9397107 -0.78479904 0.45481938 -0.53959966 0.9308751 0.39406165 0.96978134 -0.90331733 0.911811 0.65646243 0.03425994 -0.40887302 0.9236984 -0.9847902 -0.33039612 0.94373864 -0.99717385 0.9928013 -0.92970985 -0.9254021 0.9998533 -0.9999615 -0.9677481 -0.997087 0.35431725 0.8524811 -0.8599052 -0.7593612 0.62024623 -0.9999962 -0.75691867 -0.8524039 0.9454278 0.79284596 -0.7782029 -0.95032007 0.9544456 -0.2294519 -0.75163543 0.30460945 0.98960555 -0.9701452 0.99665886 -0.028619638 0.9242575 0.99999493 -0.4559914 -0.88059336 -0.43520612 -0.4836068 0.90780264 -0.8579724 0.9993388 0.10115102 -0.9359769 -0.39253646 0.9999923 -0.9986925 0.26587027 -0.98919374 0.31287107 0.9754825 -0.96142673 -0.7080039 0.7893112 -0.9866185 -0.9970513 0.9970727 -0.044781324 0.8096035 -0.9666068 -0.37625432 -0.07091216 -0.99902284 0.3567188 0.9994752 0.7919564 0.5041781 0.87692887 0.99572074 0.94779634 0.9999999 0.9999419 -0.4790787 -0.967463 -0.0819708 0.9518814 0.97227395 -0.99077386 0.9713924 0.30173525 -0.5624294 -0.99996656 0.8482963 -0.79129994 0.88191456 -0.6451198 -0.12660503 0.7608186 -0.8564958 -0.98867136 -0.6757444 0.99544716 0.98676646 0.95732546 0.582237 0.99680537 -0.35169667 -0.08631415 0.9947585 0.7706496 0.98073775 -0.9513613 -0.7937048 -0.98629755 -0.10928881 -0.9892116 0.9759057 0.0541556 0.99986064 -0.15413262 0.6059469 0.99645966 -0.62474895 0.07506103 -0.99999875 -0.99998826 -0.98389816 0.9999993 -0.070146956 -0.999705 -0.6660742 0.9999918 0.95034814 0.9963021 -0.6425393 0.97462624 -0.9930241 0.7785897 0.9969942 0.9972847 0.81856334 -0.9999999 0.04485828 -0.9882721 0.46951917 -0.15187263 -1.0 0.6017393 0.9999959 0.11036188 0.41232124 -0.072910346 -0.049032617 -0.9999219 -0.30195722 -0.92839783 -0.9931113 -0.39205512 -0.19959575 0.870332 0.11351103 -0.9992239 -0.9562065 -0.861581 0.45729384 0.6926669 -0.9745137 0.5006216 0.781873 -0.9967483 -0.45559168 0.7625908 -0.7885183 0.71880114 0.9992206 0.99928856 -0.73900104 0.6226343 -0.6645015 -0.7430903 0.9704878 -0.99997383 -0.4133743 0.45763257 -0.9464918 -0.6286298 0.99498206 -0.6050532 -0.95088345 0.21608609 0.975657 0.41851664 -0.24206713 -0.99917597 0.28580284 0.9530494 0.99999356 0.985631 -0.81680626 -0.9999444 0.92842877 -0.9289266 -0.6723305 -0.9546571 0.311604 -0.1670865 -0.9732502 0.7309625 0.74483514 0.46636888 0.9991985 0.039927844 0.88052 -0.04217145 0.072438665 0.12169629 0.77229446 0.9774834 -0.97347355 -0.36439013 0.8895526 -0.9775987 0.681437 -0.9355624 -0.97757596 -0.2644262 -0.036050454 0.8308231 -0.76609236 -0.9997333 -0.9317342 -0.8752612 0.9999165 -0.9456963 -0.992827 -0.9751597 0.8177718 -0.9958979 0.5606365 -0.9036486 0.93171036 0.4455581 -0.9967394 0.688773 0.92296106 0.10157926 -0.93403226 -0.78379416 0.9832609 0.52515185 -0.97246677 -0.7727858 0.6514711 0.999969 -0.9553638 -0.99999744 0.8447532 -0.9958452 0.87306 0.9943013 -0.7612129 -0.9953133 0.5676494 -0.15560205 -0.19129911 0.91166747 -0.9469159 0.7213813 0.1808409 0.8304424 -0.991978 -0.99999994 -0.99736774 -0.9996292 0.5208273 0.98715055 -0.9863757 -0.99280024 -0.20432177 0.84164524 0.8838109 0.43645197 0.98134893 0.36215204 0.9998399 0.79022646 0.97698486 -0.8629192 1.0 -0.35484508 0.9795636 -0.9140632 0.50413287 -0.9645196 -0.5474518 0.9587189 0.6676297 -0.6683854 0.9973675 -0.99691206 0.9215957 0.38631546 0.3742203 -0.9733469 -0.9139778 0.97855115 -0.9497241 0.9991822 0.92602676 0.85216063 0.25723925 0.99882764 -0.9992387 -0.83811 1.0 -0.9956802 -0.6155772 -0.9344737 -0.50000864 -0.9372863 0.977494 -0.027894937 -0.9980463 0.17269233 -0.74804217 -0.17697863 -0.88825566 -0.6471809 -0.9211771 -0.94185734 0.99965334 -0.9999819 0.9792057 0.9998977 0.5393723 0.920007 0.99908495 -0.99232996 -0.73187685 -0.9850224 0.3743314 0.98341477 0.2737537 0.91117615 0.5833524 -0.9318752 0.8299724 -0.89685225 0.84520227 0.9705408 -0.7555072 0.9488948 0.38144857 -0.91900903 -0.838936 -0.23943192 -0.50055885 0.9997082 0.391207 0.81746924 -0.17183389 0.99999624 0.9798734 0.35155657 -0.8677498 0.8836797 0.99999243 -0.9703077 0.60721767 -0.9999933 0.6445396 0.81145567 -1.0 0.72558844 -0.34801218 0.9999998 -0.040468812 0.9491128 -0.15800162 0.110321686 -0.611156 0.5465156 0.99999774 -0.99524647 0.5415348 -0.2495592 0.8920005 0.6275976 -0.9999948 0.96266323 0.962214 0.6732291 0.21816279 -0.96301943 -0.4956091 -0.76460135 0.13820155 -0.52837914 0.47819248 -0.5261122 -0.9794023 -0.848855 -0.009169272 0.9119688 0.9779804 0.99999976 0.8628437 -0.36690655 -0.90573984 0.94086885 0.2217313 -0.7586926 0.89115745 -0.99999833 0.91719985 -0.7126709 -0.99948674 0.06607422 0.999493 -0.91541433 -0.99940217 -0.32912982 -0.6748511 0.037489213 -0.10181831 -0.69158185 0.68524957 0.99744534 -0.84237856 -0.9286851 0.99995863 0.75363106 -0.9624127 -0.9827803 0.29014373 0.9847387 -0.87915367 0.8778573 -0.024751063 -0.52980125 0.250444 0.7701749 0.9131355 0.9996027 -0.9883832 -0.9618384 0.09843118 -0.99471796 0.92687976 -0.9416498 0.935465 -0.6500506 0.67206895 -0.097093344 -0.6726099 0.6979407 0.99985105 -0.87857413 0.8023831 -0.074811555 -0.7272786 1.0 -0.9694534 -0.97469676 -0.9901126 0.671731 -0.93403816 -0.31558973 0.99999976 0.91742194 0.81259584 -0.9994278 0.4132933 -0.10662071 -0.8460533 0.9321015 -0.6913965 0.8569718 -0.7946589 -0.99787647 0.99822253 -0.90869457 0.9382613 -0.53363144 0.32973766 -0.9696925 1.0 -0.9016822 -0.07510012 0.9871779 -0.77531517 -0.93618107 -0.9992671 0.0915666 -0.08153056 -0.8794938 -0.707475 0.99977654 -0.61802363 -0.93608963 -0.9998912 0.9636243 0.8323488 -0.99971026 0.9976472 -0.99999875 -0.32500556 0.99999744 -0.06366316 0.8534678 -0.9167665 0.9999814 -0.8703971 0.93930596 -0.3031558 -0.79409206 -0.9567166 -0.06718379 -0.99568397 -0.044841707 -0.9865394 -0.75580573 -0.002945951 -0.97847736 -0.9581508 0.90121484 0.9999978 0.16334529 0.2566957 -0.97452277 0.06590511 0.3109374 0.9282026 -0.9221122 -0.99998146 -0.9359093 0.95574343 -0.9839125 -0.9950764 -0.72282434 -0.9822896 0.9743209 -0.07093364 0.029978558 0.9987742 0.9726717 0.75749296 0.9170692 -0.9053591 -0.73112476 -0.97009104 0.9779907 -0.16285591 0.95908654 -0.87961364 -0.1949069 0.99999684 -0.69827104 0.87489724 -0.88243043 0.073750146 0.95266604 -0.99722743 0.91601586 -0.9983169 -0.35381293 0.99735814 0.85420465 0.31861612 0.9758676 0.5925463 0.80542445 -0.8645254 0.97983176 0.96400166 0.9321927 -0.7492094 -0.99851227 -0.8993641 0.8881734 -0.866168 0.603287 0.9876095 -0.3489284 -0.9721482 -0.25398463 -0.96191365 0.98550165 -0.20225331 -0.7801347 0.71702373 -0.65162 0.999935 0.98042434 0.11053015 0.4686604 -0.895085 0.9146764 0.9569322 0.25772947 0.66571784 -0.98919106 -0.79867214 -0.38488778 0.55541 0.4678759 -0.997235 0.9056047 0.23239326 -0.99966604 0.33082604 -0.92453074 0.98463976 0.91018826 0.9998434 0.8928867 0.9992942 0.93387556 0.9999999 -0.034896575 0.95855814 -0.70674634 0.999999 0.069907546 0.8878565 -0.9983181 -0.46044266 0.9999497 -0.9984599 0.38165718 0.9997369 -0.9998909 -0.065345556 0.4892433 0.99461263 -0.9018931 -0.50408584 -0.9255522 0.78546935 0.98530865 -1.0 -0.6649563 0.7754956 0.70858955 0.9992323 0.98865396 0.9837955 -0.9198154 -0.55923855 -0.9703716 0.4831352 0.9524037 0.85689986 0.998885 -0.7078266 0.98179394 0.9999906 0.99837977 -0.65643203 0.96801674 -0.793021 -0.42102987 -0.9256772 -0.66211206 -0.99704576 -0.7134688 0.4305695 0.9904277 0.34283692 -0.9946219 -0.31297132 -0.24039744 -0.9996739 -0.7842154 0.99018997 -0.9810219 0.93464917 -0.82306516 0.6813184 -0.124658495 -0.9528368 -0.027073829 0.88376045 0.9503485 -0.9809686 0.785375 -0.99259806 -0.85509217 -0.9982192 0.98221934 -0.93173695 -0.98498523 -0.8212665 0.9999997 -0.87384325 0.035803854 0.99434805 -0.7349504 0.97594565 -0.968879 -1.0 0.7676139 -0.8526976 -0.8224529 0.21624969 -0.39636803 -0.9832749 0.9986538 -0.6397402 0.7662189 -0.98490787 -0.99911475 0.9973457 -0.8787298 -0.97298914 0.063347034 0.8141906 -0.27944285 -0.9124136 0.98761857 0.8593242 -0.7119922 0.974551 -0.9802436 1.0 -0.9082264 0.51719874 0.4986568 -0.99979746 0.65527546 0.9918145 -0.89229304 -0.6319283 0.937422 0.9037933 10
-1.0 -0.99999934 0.79320437 -0.8995695 0.63105404 0.9159696 -0.9386529 0.71040833 0.9844459 -0.59190947 -0.7295231 0.7710886 -0.8155876 -0.9714365 0.9078399 -0.85040575 -1.0 0.87010145 -0.46672663 0.93317723 -0.986021 0.9999839 -0.9874077 0.5183666 0.04662685 -0.6423151 -0.40208453 0.35717267 -0.97980475 -0.18003334 0.0066118916 0.99990916 0.8134349 -0.9576646 -0.8063785 -0.9833255 -0.9916281 -0.07721911 -0.013236567 -0.8558593 0.31817997 -0.6128324 -0.9989623 -0.9707503 -0.19308184 -0.9999998 -0.2141195 0.9999937 -0.99999994 -0.7980652 -0.43365803 -0.10114113 0.7566369 -0.5186035 -0.9996995 0.849018 0.7171335 0.7308774 -0.9700027 0.853855 -0.9404187 -0.70482695 0.99964035 -0.9867035 0.5985232 0.14673828 -0.038111635 -0.98434377 -0.57261145 0.6624676 0.46687782 0.2288907 0.9852086 -0.9607313 0.12657467 0.7987486 -0.95567864 1.0 0.99032134 -0.9534353 0.8608816 -0.99833775 0.997771 0.7240423 0.9999998 -0.57977295 -0.7852516 0.96704304 0.22023332 -0.9999271 -0.9095368 -0.7138949 0.11185813 0.8824634 -0.7021725 -0.9987686 0.7939249 0.994436 0.79048085 0.999939 -0.41656616 0.99923396 0.46681035 -0.92173946 -0.47240716 -0.9999998 0.83178836 -0.9859909 0.579564 -0.19521575 0.98688143 -0.40032542 0.9822371 -0.66608816 0.9941646 -0.9829108 -0.9967921 -0.9521674 0.11225934 0.9979624 -0.99950993 0.9956503 -0.6557503 -0.40208074 -0.92650294 0.9294881 0.98827726 -0.89142054 0.86264646 0.9818252 0.87909335 0.9531636 -0.99701935 -0.97088337 0.6352128 0.88447523 -0.9190119 0.87118906 0.9997484 0.7099089 -0.9940698 0.9999674 0.8807134 0.81000835 0.32554394 0.95285016 0.803964 -0.9105684 -0.9549022 0.27933663 0.99553645 -0.9005736 -0.9863218 0.73057723 0.8305869 0.9625673 -0.96836203 -1.0 -0.999997 0.15595378 0.99988633 -0.9969406 -0.97341704 -0.07033971 1.0 0.7635655 0.9999917 -0.8428577 0.9982737 0.13225257 0.49376115 0.9999905 -0.5151385 0.9999961 -0.9999913 -0.9216675 -0.8077927 -0.83023995 0.015708571 -1.0 0.92354983 0.99999917 0.999692 0.59752685 0.9605384 -0.44505826 -0.9999998 0.8655658 0.38746163 -0.9935568 0.89967775 0.62302405 -0.57727677 -0.97762275 -0.9999331 0.94424844 -0.3428845 0.9588302 0.6591631 -0.9518276 0.8302577 -0.84976536 0.49098632 -0.14232115 0.5966748 -0.83808255 -0.8889344 0.98935246 0.06470888 -0.9153017 -0.52556217 -0.9836962 -0.9240226 0.9580676 0.1784301 -0.8491087 0.96209925 0.6244743 0.9837896 0.9551301 -0.9999959 0.033494513 -0.5043302 -0.34575656 -0.67656446 -0.99776006 0.15226117 -0.86108094 -0.99987257 1.0 0.97788566 -0.4650353 -0.9999991 0.33079728 -0.99098 -0.6747165 -0.8664049 0.7044357 0.39451548 -0.92315644 0.99878186 -0.9986945 -0.5009954 0.79661286 -0.43324083 -0.9922523 0.687168 -0.9368434 -0.5784409 -0.9727611 -0.99702376 -0.9843745 -0.92827797 0.93198806 -0.87034017 0.97362393 -0.8958008 0.9960957 -0.9924754 -0.99999624 -0.3921516 -0.2675638 -0.98943603 -0.74167585 -0.9895205 0.9820852 -0.99441904 -0.9764273 -0.99998444 0.9760769 -0.84764636 -0.33600453 0.9999718 -0.99340546 -0.97248137 0.82638437 -0.98865676 0.08457207 0.99978334 -0.97520655 0.7501937 -0.9955159 -0.47302946 0.083554074 0.4807651 0.15573695 0.99092346 -0.99999803 -0.99990535 0.24754949 -0.99999124 0.79120207 0.74421227 0.7402885 0.8095983 0.8308064 -0.7900955 -0.9809749 -0.9851585 -0.9983332 0.29088318 -0.99980587 -0.7489602 0.5612917 -0.99887824 -0.9819378 -0.99958336 -0.8958315 0.9979202 -0.99999547 -0.9999689 -0.8819798 0.94012606 -0.9999715 -0.9675288 0.9999862 0.111197606 0.90023583 -0.12353161 0.87306404 0.66932255 1.0 -0.47354144 0.7573067 0.9749911 -0.7330678 0.5048163 0.9426926 0.87113607 0.9234951 -0.991933 0.92503357 -0.9326675 -0.11819139 0.5651368 -0.13886371 -0.9631545 -0.91804874 0.7931175 0.7267057 0.21396977 0.9624338 0.9980779 -0.9561647 -0.34475368 -0.9999799 -0.995351 1.0 -0.9974741 -0.07918107 -0.9566036 -0.16534725 -0.92897457 -0.870901 -0.09207768 -0.94613665 0.9173273 0.8991516 0.6531309 -0.36215833 0.9262148 -0.94284314 0.4992125 0.059292693 -0.99989545 -0.99857277 0.9690365 0.5854307 0.9971233 0.7064105 0.8180749 -0.276195 0.39156634 0.008442041 0.94124246 0.22710064 0.8349008 0.2521615 -0.9969865 0.5562781 -0.9108463 -0.9995074 -0.9410954 -0.67668426 -0.12918259 0.9873831 -0.42183942 -0.9825005 -0.98404026 0.6695881 0.99999523 -0.94975287 0.9998845 -0.27921557 0.9986591 0.9643072 0.9332244 0.99952507 0.9991133 0.9999585 -0.83874214 0.8956087 -0.9999532 -0.9792481 0.39413843 -0.99999994 -0.75299966 -0.9808737 0.9999996 -0.8330972 -0.48075727 -0.5580479 0.98856467 -0.98364764 0.9945313 1.0 -0.79794914 0.92051667 0.86969566 0.9639764 0.99622566 -1.0 0.99865365 -0.6620997 -0.7280916 0.9995188 -0.86266875 0.87804306 -0.5349978 -0.8469578 -0.74525166 0.4391853 -0.99218565 0.81653005 -0.99028075 -0.7272718 0.8504832 0.9564233 0.9999999 0.079208985 0.9512769 0.77802366 -0.85869944 0.98769224 -0.9994965 0.5412094 -0.99996847 -0.0067896396 -0.75613296 -0.99857324 0.8889828 -0.9954204 0.07434873 -0.99585605 0.48108593 0.9799128 -0.6735895 -0.99235845 -0.51782584 -0.97804075 0.99999535 -0.9921859 0.9146333 0.99974555 -0.89270407 0.90524954 -0.8543845 -0.6665962 0.53240126 -0.17630973 0.99201745 0.8900987 0.07444104 -0.43477306 0.9999582 0.9999637 0.9999974 -0.9956691 -0.90299296 -0.46680337 -0.9999922 -0.45155597 -0.8645232 0.99994636 -0.66880065 0.97220033 -0.92264307 -0.9823765 0.37413362 0.99999905 0.09438262 0.99645287 0.035009783 -0.34641352 1.0 -0.1994737 0.533573 -0.9772447 0.5408282 0.97806704 0.74268675 0.9998978 0.9653991 0.96494555 0.24101815 -0.8429625 0.41569164 -0.99991184 0.44308236 -0.8760959 -0.5028654 0.95388764 -0.9999126 0.9888994 -0.9750428 -0.24637279 0.9483172 0.5998509 -0.98621047 1.0 0.9989745 0.97369057 -0.3254008 0.054830793 0.9826098 0.99958676 -0.9537904 0.9999655 0.830557 0.39023298 0.9416512 -0.42376536 -0.9982191 -0.98373044 0.9944359 -0.76809454 -0.95722806 0.99894464 -0.99997663 0.8533564 0.99952585 0.05247875 0.39927334 -0.91967744 0.99996996 0.9993505 0.63633066 0.97265655 -0.23095402 0.9943522 -0.83495456 -0.9824419 0.5745988 -1.0 -0.99521905 0.9999994 -0.99408203 -0.8525363 -0.040911462 1.0 -0.94998837 -0.99714226 -0.9993579 -0.49484214 -0.9986983 -0.899121 0.2792401 -0.8297502 -0.8404481 -0.64299667 0.1845721 -0.8558901 0.9635993 -0.22670424 0.88641566 -0.84414417 -0.9431462 -0.6920758 0.9900754 -0.837522 -0.31624487 -0.99998534 0.9999979 -0.86761266 0.99517834 -0.22370742 -0.52996373 0.93333125 -0.7898016 0.99949366 0.70530736 0.37393346 -0.92357576 0.9999786 -0.42894816 -0.99065745 0.8577421 0.9898765 0.6422923 0.9463786 -0.83851254 -0.89978844 -0.4375756 -0.90851766 -0.73367584 -0.8954474 -0.93427455 -0.99999905 -0.99845195 -0.71998334 -0.8277362 -0.9913735 -0.96246684 0.5489099 0.9116235 0.99999696 -0.55861175 -0.9887093 0.2566569 -0.9985061 -0.9999024 0.7711922 0.14070779 -0.34317952 -0.10835179 0.9992365 0.99798894 -0.9001237 -0.036486037 -0.6317853 0.9840963 -0.9404574 0.7825974 0.97482044 -0.70757747 -0.7562485 -0.6867486 -0.5627312 -0.75057125 0.9779834 -0.97453344 0.30351096 -0.9944607 -0.9478511 -0.88594604 0.6308505 0.99964255 -0.76499456 0.8690642 0.7482116 0.09966535 1.0 -0.27214843 -0.9997035 0.16640404 1.0 -0.98701614 -0.27059394 -0.92090136 0.999935 0.10802985 -0.9968919 0.99155635 0.99368495 -0.9938567 0.9951853 0.40769038 0.98711836 -0.98698014 0.9996205 -0.97293293 0.9169719 0.9906509 -1.0 0.88069624 -0.93014944 -0.819448 -0.98964745 0.99995756 -0.9289378 0.80234545 0.8878589 -0.6689029 0.80984247 0.9999998 0.63136894 -0.7905507 -0.99977213 0.68922436 0.999979 0.9600328 0.99771404 -0.034992073 0.32762372 -0.18285212 -0.9997272 0.8282807 -0.9127649 -0.99477553 0.532709 0.6005046 -0.9541837 -0.1977724 -0.48774976 -0.80441916 0.99543566 -0.635157 -0.9996191 0.9605504 -0.9898262 -0.740785 0.9984481 0.99901116 -0.99313647 0.64644295 0.99839365 0.9542182 0.9869193 0.9720637 -0.99738634 0.97417384 -0.9999862 -0.9908473 -0.39190817 -0.6702019 0.999825 0.9963385 -0.99707013 0.9997754 0.7736704 -0.3858078 0.99707675 -0.9818473 -0.9999985 -0.851158 0.9875486 0.25688338 0.84299576 0.991567 -0.9999997 0.36226258 0.9987631 0.9143686 0.42623895 -0.84862274 0.9565607 -0.98394614 0.70008725 -0.9317895 0.9757976 0.98263717 0.419723 0.98860294 0.98413646 0.6239773 -0.7108762 -0.9738221 0.99999756 -0.8739707 0.50072455 0.92683256 0.46978647 0.9701897 0.99988323 -0.99999785 0.5362375 -0.9999933 -0.99129695 9
-0.99999994 -0.9999974 0.66358924 -0.9375237 0.8234131 0.99716794 -0.96437675 0.33672914 0.97940177 -0.59642756 -0.76298857 0.659639 -0.91704804 -0.9783372 0.9361345 -0.7203428 -0.9999999 0.97590894 -0.3429822 0.87492836 -0.95748436 0.9998519 -0.99045813 0.6954762 0.33249453 -0.719119 -0.50331336 0.725326 -0.99943775 0.0024522508 0.39680988 0.99932325 0.9713334 -0.97838306 -0.9642486 -0.9696684 -0.99399763 0.1588917 -0.099414185 -0.90621257 -0.26733857 -0.054476935 -0.99972636 -0.9781853 0.00040551924 -0.99999994 0.32251394 0.99990565 -0.99999946 -0.7845664 -0.85792005 -0.27537596 -0.76312715 0.31884968 -0.9998055 0.6812224 0.89764315 0.9690584 -0.981549 0.7385247 -0.9245949 -0.31208563 0.99817246 -0.98922855 0.6455941 0.6285927 -0.72414905 -0.9821718 -0.39061838 0.39081028 0.43189698 -0.1886884 0.97524613 -0.9104569 -0.301347 0.58885014 -0.9224617 1.0 0.9548404 -0.9938678 0.6848047 -0.99961674 0.99883854 0.13230988 0.9999998 0.090771236 -0.9521476 0.94259024 -0.9729403 -0.99997866 -0.87310237 -0.95452434 -0.5274391 0.8218193 -0.9075463 -0.9965055 -0.0013083362 0.9980054 0.40383685 0.9999571 -0.6378877 0.9934951 0.9909254 -0.95798683 0.016883666 -0.99999577 -0.222427 0.21046048 0.59701705 -0.20774108 0.97144985 -0.19284979 0.99441016 -0.972927 0.9978375 -0.87763065 -0.99283385 -0.9456309 -0.24223623 0.9993337 -0.99230796 0.99856347 -0.76545846 -0.12733227 -0.7164764 0.95075023 0.9978154 -0.5277828 0.95629126 0.9760783 0.48349681 0.8277974 -0.9986673 -0.5115479 0.6566952 0.98263603 -0.99361664 0.9776798 0.99893653 0.6261778 -0.99955493 0.9999006 0.9736268 0.5462363 0.30321774 0.75063026 0.76509225 -0.9542176 -0.962824 0.15104155 0.9932088 -0.96246326 -0.99334824 0.9221376 0.9530453 0.9751719 -0.9957355 -1.0 -0.99999934 0.3057949 0.9976478 -0.9994588 -0.9823541 0.011161661 0.99999994 0.8192908 0.99999934 -0.9131196 0.9973897 0.56271374 0.9001703 0.999998 -0.7910122 0.9999894 -0.99956214 -0.9702742 -0.98415446 -0.951256 0.06184297 -1.0 0.99796134 0.9999756 0.9988331 0.7848213 0.94013727 -0.53246063 -0.99999964 0.63924515 0.62941164 -0.9871589 0.82388663 0.68903875 0.33289146 -0.9733851 -0.9999033 0.9799826 0.12646954 0.937142 0.67785263 -0.97938186 0.89290094 -0.91156816 -0.4450471 0.3731141 0.32796255 -0.9636369 -0.6306951 0.99241275 -0.085673735 -0.75821257 -0.5360867 -0.9926554 -0.76357186 0.9831101 0.68903625 -0.9211325 0.7886027 -0.37531656 0.9639937 0.9619705 -0.99996537 -0.60526067 -0.65076995 -0.07724747 -0.47641626 -0.998648 0.027312607 -0.9484941 -0.9999214 0.99999994 0.77560294 -0.14439633 -0.99999994 0.41179526 -0.9926064 -0.8091177 -0.7972809 0.55751395 -0.45610976 -0.9792826 0.99657965 -0.9988988 -0.588451 0.79230815 -0.7640865 -0.9929469 0.98681253 -0.7193178 -0.81336546 -0.6013117 -0.9883133 -0.99091536 -0.9823933 0.9887258 -0.9278356 0.99508184 -0.82247066 0.9363741 -0.992828 -0.9999738 -0.6329912 -0.20400386 -0.9927917 -0.657475 -0.964341 0.951866 -0.9982202 -0.9977477 -0.9999602 0.9338222 -0.65401435 0.30815962 0.9999883 -0.9950187 -0.99788225 0.697774 -0.9945998 0.8192712 0.9999774 -0.98147035 0.84628534 -0.99875337 -0.35477862 0.46558926 0.5121806 0.610544 0.99825174 -0.9999734 -0.9993037 -0.10775177 -0.9999984 0.5124862 0.89982635 -0.14573532 0.69091415 0.94244766 -0.78693336 -0.92114913 -0.78269047 -0.97745687 0.7453867 -0.99985194 -0.7828507 0.67710304 -0.9953525 -0.99650633 -0.9998829 -0.96724486 0.9781215 -0.999993 -0.99999094 -0.78653693 0.96745163 -0.9999982 -0.8120016 0.9999889 -0.09324267 0.9427129 -0.90292776 0.97798264 0.7909933 1.0 -0.72423995 0.7147106 0.98311526 -0.7514268 -0.3441043 0.9553586 0.9774159 0.79843885 -0.88508767 0.87286353 -0.98198193 -0.32559776 -0.017487084 -0.33248952 -0.9436312 -0.72067624 0.9230361 0.9416324 0.5412235 0.95277727 0.95220685 -0.84029984 -0.8700581 -0.9999938 -0.97661144 1.0 -0.999282 0.13002911 -0.93423057 0.02943183 -0.8856962 -0.9042591 -0.617104 -0.9558367 0.9438541 0.90347236 0.7038369 -0.6286496 0.98013854 -0.89694977 0.5953696 0.7703478 -0.9999941 -0.9999324 0.9108638 0.91022867 0.99951905 0.7313 0.38234633 0.69593227 -0.15687749 -0.6127783 0.8787477 0.45547798 0.6969384 0.1621427 -0.9986875 -0.57221055 -0.85434604 -0.99929065 -0.9656348 -0.7337198 -0.017661072 0.9931142 -0.91610557 -0.99958855 -0.9936903 0.8927127 0.999927 -0.9553022 0.99999267 -0.8773752 0.9973644 0.96558714 0.62745595 0.9995025 0.9995357 0.99944425 -0.9646812 0.99510616 -0.9999724 -0.9675939 0.41224834 -0.9999995 -0.23806453 -0.99774593 0.9999984 -0.83162236 0.38101825 -0.7199595 0.96431816 -0.9459728 0.9421094 0.9999999 -0.9754607 0.88279974 0.7857155 0.85927445 0.9874196 -1.0 0.9996254 -0.9788912 -0.895616 0.99911934 -0.98875153 0.98624885 -0.5027286 -0.89086026 -0.6159419 -0.029092586 -0.9692282 0.03264834 -0.97467303 -0.5239446 0.9279885 0.82434464 0.99999964 0.2998637 0.94326913 0.5818507 -0.9767063 0.9937087 -0.9997589 0.64981204 -0.9995339 -0.4639869 -0.66856724 -0.9989889 0.91133916 -0.997686 -0.27322927 -0.9807864 0.6474335 0.9549302 -0.8338909 -0.97273505 -0.34154838 -0.9990022 0.99989945 -0.9998609 0.82788706 0.99978614 -0.86801076 0.86082935 -0.91881865 -0.045548074 0.61173934 -0.3754133 0.9985076 0.95532185 0.019081373 -0.16750388 0.99986917 0.9999981 0.999999 -0.9949476 -0.97593576 -0.53284323 -0.9999572 -0.3561613 -0.95681554 0.99978304 -0.7331518 0.99291474 -0.92956334 -0.97074634 0.4413053 0.9999984 0.33140895 0.99321795 -0.45388976 -0.20637372 1.0 -0.64738464 0.944956 -0.9981519 0.8818561 0.95869523 0.8704827 0.9948676 0.9728338 0.98172134 0.86988527 -0.89741033 0.30824056 -0.9997858 0.5839313 -0.8113901 -0.29154947 0.99795973 -0.9999415 0.99817276 -0.9833878 0.44859478 0.8734709 0.51118904 -0.97423273 1.0 0.9946886 0.96866757 -0.060476262 -0.44187355 0.9673981 0.99398255 -0.9635443 0.99998796 0.82329243 -0.018764872 0.9972173 0.28238162 -0.9968292 -0.9934745 0.99535286 -0.8941658 -0.9923774 0.9995273 -0.9998399 0.69046 0.9896799 0.29892212 0.5566547 -0.9708088 0.99999607 0.99414736 0.9427289 0.9325274 -0.026134558 0.9497934 0.34097192 -0.9679631 0.5097965 -1.0 -0.9969475 0.9999917 -0.9827618 -0.875552 -0.9222348 1.0 -0.97918177 -0.97910386 -0.99995124 -0.57984936 -0.9726763 -0.788964 0.58993185 -0.7567282 -0.94613606 -0.62549686 -0.29583287 -0.8717802 0.9748987 -0.66137797 0.8092346 -0.76269424 -0.68071663 -0.3418456 0.9895836 -0.942228 -0.48634946 -0.9999408 0.9999958 -0.71594095 0.99292314 0.44712877 -0.5600077 0.97661275 -0.9214805 0.99781466 0.7053257 0.4024371 -0.9491369 0.9991604 -0.077138945 -0.9818398 0.9416811 0.99570084 0.98216575 0.994427 -0.7020372 -0.9069236 -0.5855198 -0.7808726 0.12832443 -0.96788555 -0.8895488 -0.99999803 -0.9999022 -0.82306015 0.07556049 -0.9851278 -0.8356263 -0.36360532 0.9702598 0.99999934 0.08969019 -0.9964714 0.22717053 -0.99989253 -0.99990153 0.06803263 -0.54692185 -0.013473052 -0.67560214 0.9907499 0.9996296 -0.2154571 0.48876202 -0.12577432 0.9917599 -0.9697086 0.845608 0.98694193 -0.7995548 -0.90014684 -0.7348515 -0.6838312 -0.25283894 0.99969393 -0.8827516 0.12085094 -0.997602 -0.9896968 -0.8719648 0.7015772 0.9980891 0.09706621 0.954418 0.96839046 -0.4727645 0.9999998 -0.8393646 -0.999001 -0.3459806 1.0 -0.99238545 -0.70622456 -0.619563 0.9998059 -0.8559713 -0.9981749 0.994251 0.95254385 -0.9995843 0.9977415 0.9532875 0.99856794 -0.99931544 0.9977075 -0.9955926 0.9091201 0.98562187 -0.99999994 0.687909 -0.90339607 -0.67762876 -0.9982219 0.9997765 -0.5642898 0.7452414 0.79252076 -0.7686569 0.8227209 0.9999974 0.9093743 -0.72781074 -0.99991083 0.76888037 0.999984 0.9758021 0.9849107 0.6524962 -0.13422602 -0.58106285 -0.9994453 0.88372684 -0.98373795 -0.99837136 0.75327295 0.50413656 -0.9005159 0.21429944 -0.6422742 -0.77660143 0.99363035 -0.25324574 -0.999254 -0.4591489 -0.8907434 -0.5776999 0.99061286 0.99928886 -0.995411 0.79419076 0.9926695 0.9856637 0.965023 0.795597 -0.99166775 0.87324 -0.9999722 -0.9510849 -0.8962975 -0.92149913 0.9999295 0.9003759 -0.99838436 0.9996856 0.8348198 0.0047597387 0.99424684 -0.9881489 -0.9999556 -0.9117383 0.90995723 0.01760838 0.6265812 0.87625235 -0.9999974 0.92630845 0.9933473 0.9687043 0.23000154 -0.991173 0.9762925 -0.99970245 -0.09437659 -0.99162275 0.982159 0.92492616 0.15833157 0.99173415 0.95950735 0.50620496 -0.77428305 -0.99753904 0.9999306 -0.9884786 -0.96731794 0.7970438 -0.43051517 0.95376664 0.99996483 -0.99999917 0.7975999 -0.99995 -0.98723644 12
-1.0 -0.9999999 0.04817132 -0.996293 0.9858905 0.47993135 -0.9180021 -0.40674856 0.9234612 0.45582908 -0.96546257 0.01850503 -0.92514485 -0.9868983 0.8894306 -0.5978972 -1.0 0.7328294 -0.54832864 0.97764575 -0.9066987 0.9981768 -0.98357826 -0.018433351 -0.7576861 0.8032193 -0.9913181 0.13527183 -0.9988492 -0.380681 0.7188876 0.9991016 0.7368076 -0.87434816 -0.9192319 -0.9986379 -0.93589044 0.0030924308 -0.4650206 -0.9781535 0.97472894 -0.7525078 -0.9999676 -0.99094516 -0.50269693 -0.9999999 -0.9942281 0.9999917 -0.99999994 0.8756909 -0.79961956 0.47203127 0.9990779 -0.9929738 -0.99996096 -0.5626911 -0.11605819 -0.7594185 -0.9667909 0.9875428 -0.48515025 -0.99080586 0.9734552 -0.99169683 0.08506421 0.08622279 0.41811007 -0.9931757 -0.2865542 0.36793292 -0.9309072 0.6374233 0.84798336 0.13671242 0.96187353 -0.81228435 -0.93161726 1.0 0.60761505 -0.9972313 0.5508189 -0.98799807 0.9852833 0.73350465 0.9999948 -0.9960421 -0.1167251 0.903738 0.94981974 -0.99699193 -0.98744065 -0.9493619 0.032763246 0.8808229 -0.9857913 -0.99994665 0.94986194 0.6199553 -0.027090967 0.9999811 0.09389388 0.9995428 -0.74990255 0.70255566 -0.8287943 -0.9999911 -0.6428212 -0.99650216 0.976295 -0.60957193 0.9986471 0.705308 0.96916056 0.9231129 0.99890304 -0.98256105 -0.98264813 -0.97428226 0.24358612 0.9995521 -0.99992424 0.9995334 -0.79631984 0.5218711 -0.9733062 0.94910794 0.9943775 0.6609078 0.84168774 0.9287298 0.44719335 0.9557438 -0.98395115 -0.9966278 0.9630338 0.5121851 0.72023886 0.7217803 0.9980467 0.2359177 -0.70885915 0.99998623 0.9879666 0.77512014 0.80657524 0.86151034 0.8735653 -0.44127408 -0.9000878 0.0868689 0.9634481 0.5704099 -0.8398936 0.7872551 0.75373286 0.9071204 -0.94621146 -1.0 -0.9999982 0.9232703 0.99997324 -0.9941818 -0.9934639 0.47270662 1.0 0.953865 0.9999998 -0.18812656 0.9946148 -0.8887827 -0.65273964 0.9999998 0.49376866 0.9997587 -0.99999964 0.5082826 -0.97825676 -0.6287919 0.68045753 -1.0 0.39105406 0.9999962 0.9998871 0.9365864 0.928975 0.5730072 -0.99999994 0.937721 -0.034451693 -0.9974297 0.8926985 -0.39591804 0.9127385 -0.9659781 -0.99984807 0.9602549 0.26287222 0.5502921 0.9846012 -0.967652 0.58143437 -0.9399864 -0.96726364 -0.85304874 0.65204096 -0.512931 -0.6904938 0.99770194 0.9197431 -0.30546758 0.25305587 -0.9258846 -0.97316974 0.98114556 -0.7130402 -0.926896 0.77796996 0.9855622 0.9184016 0.99944085 -0.99999505 -0.22008926 -0.62209463 -0.9529202 0.07263833 -0.97765225 -0.8972067 -0.965034 -0.99934864 1.0 0.997976 -0.6175028 -0.9999987 -0.026784193 -0.9954752 -0.44338122 -0.8077396 0.9388313 -0.21893026 -0.9973779 0.7719222 -0.9997131 -0.16570458 0.95109063 -0.9101682 -0.9441292 0.9215605 -0.61980164 -0.5417987 -0.97532344 -0.9584532 -0.9986514 0.038189918 0.9716973 -0.9762495 0.9592567 -0.79468584 0.9828267 -0.99026704 -0.9999983 -0.044067144 -0.3431461 -0.9921033 -0.8653505 -0.9928927 0.9991649 -0.96880233 -0.92903507 -0.99999535 0.95617115 -0.7228267 0.50590456 0.9994431 -0.394613 0.5910062 -0.6226745 -0.75747 0.59481037 0.9983559 -0.4655436 0.93312705 -0.98658425 -0.5794268 0.82430947 -0.86993366 0.8152202 0.9983438 -0.9999994 -0.9999985 -0.53129447 -0.99994814 0.9482616 0.95241505 0.030525805 -0.24033006 0.98664033 0.05449039 -0.9958633 -0.9880201 -0.999798 -0.4486671 -0.99949914 -0.68538654 0.7912998 -0.9999849 -0.99890584 -0.99999946 0.0029303106 0.98820263 -0.99979675 -0.99978346 -0.4321643 0.6701133 -0.99916476 -0.40060693 0.9999919 0.801399 0.5610956 -0.34928915 0.85581475 0.5136323 1.0 -0.24361831 0.96696824 0.7223085 -0.5117361 -0.36490652 -0.5923587 0.9804855 0.3057925 -0.9993596 -0.21019769 -0.66815495 -0.31407654 0.48272777 -0.103172466 -0.98116463 -0.9066244 0.87296283 0.24624279 -0.10185729 0.9774821 0.8837625 -0.05071717 0.8460874 -0.9999914 -0.85389763 1.0 -0.99904835 -0.5254947 -0.9924359 0.21004565 -0.6319697 0.5715572 -0.19202562 -0.9671303 0.24578585 0.9166488 0.84708166 0.49786535 0.9792178 -0.9883675 -0.85406166 0.22269517 -0.9999966 -0.98403335 0.99815756 0.6812748 0.99831384 0.925683 -0.47737375 -0.97526574 0.5182967 0.8417062 0.9429364 0.7782236 0.84087867 0.13220587 -0.9990254 0.45230055 -0.95661074 -0.9935153 -0.59562355 -0.7311659 0.7137331 0.97334677 -0.29687753 -0.8737531 -0.90384245 0.61123526 0.99996626 -0.95043117 0.9962225 -0.849713 0.999756 0.97294563 -0.80676234 0.999968 0.989508 0.99998546 -0.99542356 0.7514623 -0.9999992 -0.5425878 0.87673134 -1.0 -0.402374 -0.97517437 0.9999998 0.47873136 -0.7751514 0.5871104 0.9955345 -0.9990255 0.99010044 0.99999994 -0.9728442 0.26514643 -0.80628914 0.6242052 0.99949723 -1.0 0.98216623 -0.64678216 0.29953837 0.99995095 0.3634397 0.4873399 0.15470299 0.08686809 -0.9105627 0.4221605 -0.973677 -0.8698045 -0.14442815 -0.5065849 0.8237388 0.95501983 1.0 -0.76406956 0.66895497 0.36661723 -0.48608795 0.99720454 -0.99941593 0.76097286 -0.9999997 0.8671463 -0.95580244 -0.9999771 0.9465057 -0.9845488 0.15012936 -0.9968975 0.106512964 0.9961437 -0.82293445 -0.9745815 -0.31029007 -0.9117677 0.99998736 -0.9529598 0.931891 0.99996763 0.8908996 0.28573573 -0.91324973 0.5397779 0.89954966 -0.5851431 0.94935143 -0.82805157 0.6058153 0.14921755 0.99959695 0.9997223 0.9999949 -0.99943143 -0.89328516 -0.69600254 -0.99999857 -0.04942996 -0.9384103 0.99763757 -0.8784517 0.91425884 -0.95047843 -0.9834558 0.036931887 0.9999982 -0.9338271 0.95761406 0.05134305 -0.61112916 1.0 0.44959396 -0.73559153 -0.99507433 -0.14076015 -0.57660353 0.9158467 0.9999977 0.75379694 0.9866008 -0.86076 -0.8279779 0.86404675 -0.999992 0.79462063 -0.43213418 -0.57722455 0.63048506 -0.9986607 0.9662511 -0.9530725 0.4677455 0.67252874 0.068782076 -0.7998913 1.0 0.98993677 0.93573546 -0.53651017 -0.9504797 0.6325841 0.9827435 -0.9574338 0.9999913 0.76618904 0.72640383 0.9844722 -0.11319943 -0.9731689 -0.9857686 0.99984705 -0.93934137 -0.97439843 0.99967515 -0.99999607 0.8659831 0.9999315 -0.43041795 -0.8351228 -0.94426626 0.9999981 0.8910325 0.5543394 0.97271 -0.902474 0.9894718 -0.9988581 -0.9737804 0.86961406 -1.0 -0.9985508 0.9999931 -0.99729764 -0.9959571 0.3727171 1.0 -0.7728172 -0.7835889 -0.99976116 -0.06556254 -0.9999299 0.23565708 -0.6156899 -0.9505224 -0.881673 -0.28698587 -0.9786616 -0.7759092 0.75533634 -0.9248536 0.9823181 0.07967565 -0.6162477 -0.9463647 0.9757943 -0.12520021 -0.8480006 -0.9999018 0.9999962 -0.49469566 0.9989957 0.16152309 -0.18920414 0.79144955 -0.32347775 0.99992096 -0.79387987 0.7761445 -0.98180836 0.9999599 -0.6506533 -0.99740034 0.9797202 -0.7940706 -0.9806351 0.9691176 0.06408655 -0.8439564 -0.77769923 -0.9612449 -0.83696544 -0.99617785 -0.9304545 -0.99999684 -0.99396896 0.61241555 -0.9860961 -0.98576087 -0.85882527 0.96370053 0.8822973 0.999896 -0.63490784 -0.95379436 -0.43468237 -0.9987935 -0.9998379 0.19867562 0.79560846 0.44895136 -0.535498 0.99991167 0.9890996 -0.19228731 0.7795328 -0.51766866 0.97564423 0.7080895 -0.36368814 0.9696953 0.47305596 -0.73676604 -0.37395734 -0.4906802 -0.9238746 -0.07604137 -0.70708096 0.7894176 -0.9901667 -0.9636084 -0.99335086 0.8367468 0.9962048 0.1537335 0.9970169 0.9714391 0.931244 0.9999999 -0.55122685 -0.9963707 -0.39190376 1.0 -0.9036497 -0.78281146 -0.97408605 0.9999886 0.92650807 -0.99873286 0.99812245 0.9992829 -0.99719733 0.9449606 0.9448973 0.9870483 -0.999228 0.9985964 -0.8782851 0.71451366 0.9850607 -1.0 0.44100922 -0.72915816 -0.64540726 -0.45749894 0.99993634 -0.23835401 0.28863055 0.6250519 -0.8944678 0.9689132 0.999999 0.8085693 0.6617193 -0.999812 0.78883606 0.9999907 0.9915379 0.9507343 0.38576874 0.20151219 -0.50063896 -0.9997532 0.85467976 -0.98576766 -0.9140358 -0.5158416 0.13834468 -0.834761 0.07553272 0.59149855 -0.9249389 0.2844783 -0.99003434 -0.9901558 0.94022846 -0.98851424 -0.61410403 0.99989367 0.99981606 -0.97056174 0.6526922 0.9996242 0.95944 0.9319843 0.7787921 -0.9987872 0.9447529 -0.9999987 -0.99847776 -0.81553257 -0.81020594 0.9975415 0.99965423 -0.9995768 0.9999572 0.9771481 -0.64070684 0.9959582 -0.9942357 -0.99999994 -0.74663687 0.9926736 0.83467263 0.432238 0.99216807 -0.99999994 -0.85305613 0.99996084 0.9931929 -0.78020966 -0.9563469 0.96622825 -0.4432182 0.60643685 -0.9820834 0.98936504 0.763667 0.29431173 0.9989657 0.9947041 0.87322 0.32476705 -0.99734133 1.0 -0.9891402 0.9495081 0.90071714 0.18833219 0.72440326 0.9999839 -0.99994034 -0.39626956 -0.99978846 -0.93685704 1
-1.0 -0.99999994 0.91841584 -0.039970204 0.9388783 -0.49262747 0.8653799 0.9605002 0.97766715 -0.015414205 -0.2973639 0.45984027 0.21591885 -0.99009866 0.8506161 -0.36651295 -1.0 0.72211516 -0.81669503 0.9496754 -0.2548345 0.9998585 -0.9715226 0.20454971 -0.58804464 -0.028974378 -0.9746099 -0.048271462 -0.97202605 -0.7407822 -0.8751264 0.99990153 -0.6960473 -0.9130629 0.9675373 -0.9033583 -0.79042304 -0.38985324 0.25473487 -0.9012436 0.9831467 -0.6204839 -0.9964712 -0.67823 -0.68067324 -0.9999995 -0.9921764 0.9999996 -0.99999994 -0.09982633 -0.13325734 0.17398319 0.99907124 -0.99988306 -0.99928445 -0.3361542 0.77830535 0.13935122 -0.9503128 0.9181685 -0.556642 -0.99735606 0.9997521 -0.8804195 0.6080224 -0.65793574 -0.25397858 -0.27920124 -0.073499314 0.99514556 -0.036281183 -0.0530247 0.9442504 -0.9963124 0.84170604 -0.87204564 -0.76770175 1.0 0.059761822 -0.997524 0.19026473 -0.99909306 0.9928841 0.7546479 0.9999986 -0.06452479 -0.9220799 0.46012485 0.99892473 -0.9936464 -0.79545885 -0.65914905 0.93915576 0.70439696 -0.6631311 -0.9999189 0.99559885 0.9188939 0.6914269 0.9923387 -0.44698095 0.99422014 -0.9988198 -0.9900275 -0.53867865 -0.9999992 0.8558616 -0.9956854 0.91465604 -0.46092373 0.9778153 0.606751 0.94544685 0.99095154 0.99986327 -0.99483496 -0.9971288 -0.699161 0.9051199 0.9601235 -0.9999813 0.9961 -0.939494 0.39678225 -0.99813414 0.9798956 0.9901974 0.408491 0.7108942 0.8576781 0.97622436 0.9254346 -0.9933674 -0.9985628 0.39354384 0.8729943 0.93952763 0.5225251 0.9997906 0.3435287 -0.7830249 0.99999666 0.98427397 0.89651704 0.7019814 0.8949626 -0.28009132 -0.8575268 -0.9512472 -0.12003009 0.83427215 0.76981646 -0.95889896 0.55221176 -0.15643553 0.54675233 -0.82533336 -1.0 -0.9999997 0.43102846 0.9999785 -0.9740104 -0.9776222 -0.5658516 1.0 0.9971937 0.9999986 -0.22680584 0.9996797 -0.86551654 0.2901813 0.9999914 -0.47285563 0.9998932 -0.99999994 -0.44209212 -0.5532852 0.52280843 0.8438715 -1.0 -0.62296015 0.9999976 0.96712196 0.91919315 -0.0014585786 -0.50988686 -0.99999994 0.8361292 -0.7681741 -0.99932927 0.9757086 0.18168172 -0.9373995 -0.90831095 -0.9997369 0.07336822 0.9596817 0.8181077 0.1210226 -0.16302271 0.1572587 0.08148523 -0.79543656 -0.49282047 0.88983184 -0.54858154 -0.01728618 0.9997419 0.9707269 -0.9707891 -0.021979982 -0.98003304 -0.9087548 0.3754812 0.12984702 -0.83661294 0.990607 0.3140828 0.8991975 0.99921924 -0.9999946 0.8842825 -0.10091473 -0.8466862 -0.6169177 -0.99089867 -0.5205113 -0.6588626 -0.99949694 1.0 0.88534695 -0.7138759 -0.9999834 0.80292547 -0.9995709 -0.82056403 -0.69234395 0.7069054 0.05907367 -0.49434125 0.9877707 -0.9823595 0.7730434 0.9736937 -0.49379265 -0.34565875 -0.9458035 0.28430632 -0.7943049 -0.17357966 -0.9878078 -0.81812274 0.5039635 -0.3420414 -0.93056375 0.78864694 -0.94262755 0.9419982 -0.9734797 -0.99999887 -0.47409394 -0.28245443 -0.99815834 -0.93620217 -0.65660954 0.98580617 -0.92173177 -0.895379 -0.99996614 0.9451618 -0.9577769 -0.22362517 0.96038014 -0.72684795 -0.88930964 -0.8148833 0.7513504 -0.6029266 0.9991803 -0.83874464 0.9458938 0.8809636 0.39038622 -0.35998452 0.29378623 0.832672 0.9972774 -0.9999886 -0.99998796 0.5308699 -0.9997152 0.97633463 0.3397514 0.7731511 -0.94867206 0.9402697 -0.7238823 -0.95588964 -0.9865402 -0.9997392 0.53121316 -0.9962196 -0.40769938 -0.5516648 -0.99978894 -0.97123754 -0.99998724 -0.33611447 0.9854618 -0.99999726 -0.9936603 -0.8899075 0.6467078 -0.9948457 -0.97591066 0.9993821 0.074109256 0.96838367 0.74897206 0.9440763 0.06015605 1.0 -0.5472316 0.8120962 0.5806352 -0.8220357 -0.76220876 0.93694174 0.5893201 -0.19730423 -0.99053323 0.9595701 -0.8323322 0.47686252 0.82601464 0.1610726 -0.98090553 -0.95690715 0.30572262 0.008169067 0.16199136 0.9997134 0.9975044 -0.7088439 0.8961394 -0.99992883 -0.9783697 1.0 -0.9845329 -0.86301744 -0.676291 0.6715002 -0.87412083 -0.9092887 0.7122308 -0.94420904 0.61830884 0.64551425 0.93210435 -0.53983736 0.30974922 -0.81589514 -0.45420492 0.8432604 -0.99992865 -0.89068466 0.96439093 0.023844333 0.90820825 0.4039918 0.8914068 -0.45313156 -0.5575079 0.5719292 0.916275 0.6315073 0.22475576 0.56632566 -0.9908174 0.6396823 -0.7605654 -0.9600874 -0.058364436 -0.45526496 -0.016004246 0.997418 -0.580088 -0.919138 -0.9766301 0.70472133 0.9999992 -0.88469607 0.99904174 0.7296543 0.99947006 0.9871458 0.9148619 0.99884045 0.9982947 0.99999475 -0.71049744 0.6020832 -0.99999917 -0.9829877 0.44595587 -1.0 -0.98344105 -0.6766298 0.99999225 -0.66931915 -0.68567145 0.7152183 0.94002765 -0.98736054 0.99960923 0.9999986 -0.4177653 0.088339835 0.73039937 0.46131083 0.3125086 -1.0 0.31314403 0.9923718 -0.2521379 0.9998548 -0.97014695 -0.10037724 0.50391567 -0.8254894 -0.9925082 0.66678095 -0.99658644 -0.22931823 -0.35334763 0.41403878 0.74544406 0.8696718 1.0 0.8171617 0.7899264 -0.57196355 -0.48408866 0.4893085 -0.99976593 -0.5637857 -0.99999803 0.58661467 -0.6888205 -0.98733664 0.5749514 -0.7342433 0.6718401 -0.9932533 -0.3564624 0.99259245 -0.7353132 -0.40346828 0.54732835 -0.7197678 0.99999654 -0.95653033 0.8560329 0.99999493 0.996276 -0.41497725 -0.9794134 0.879767 0.89699167 -0.8500637 0.97190213 -0.865826 0.42375734 -0.8252075 0.99977636 0.99968994 0.9997666 0.23708849 -0.93799806 0.13469738 -0.9999922 -0.13047709 -0.8503572 0.9984347 -0.50425816 0.7497529 -0.5967583 -0.35865608 0.819223 0.9999985 -0.94622254 0.9804021 0.6115101 0.5705956 1.0 0.8904239 -0.9927074 -0.91093695 -0.6621176 -0.9655802 0.721573 0.99999976 0.8795949 0.994007 -0.99180025 -0.49731234 0.41705492 -0.9999891 -0.4614146 -0.9478017 -0.49229404 0.36724323 -0.9999598 0.9884975 -0.9556684 -0.74586403 0.4588404 0.16923185 -0.77104706 1.0 0.9760639 0.7835552 0.026786862 -0.941732 0.9900974 0.98366535 -0.9305278 0.99961734 0.30696398 -0.7437178 0.8346614 -0.9798198 -0.97920614 -0.99779075 0.95203453 0.6274334 -0.87097305 0.9997099 -0.9999992 0.14344095 0.9999882 -0.07237247 0.7474971 -0.9249489 0.99996257 0.71119696 -0.3471079 0.97387123 -0.55709773 0.96829236 -0.9705521 -0.9903052 0.4993208 -1.0 -0.9971468 0.99999297 -0.96232563 -0.3816066 0.9332695 1.0 -0.9725185 -0.99385506 -0.9773168 -0.26015243 -0.99996895 -0.55804145 -0.5805755 -0.8648505 0.039744247 0.93626595 -0.9781172 -0.9807739 0.9954701 -0.38473326 0.7346505 0.17364599 -0.99886173 -0.49268594 0.60263944 -0.15465285 0.7063581 -0.99999726 0.9999809 -0.9920556 0.99309975 0.08698694 0.31210625 -0.08351856 -0.10776552 0.99977016 -0.6289097 0.6106925 -0.899999 0.999974 -0.7564904 -0.9933543 0.8461185 -0.09453225 -0.9700445 0.8342113 -0.7460463 -0.52455723 0.52823395 -0.95077455 -0.8705308 -0.9517883 -0.0018933102 -0.9999991 -0.50878346 -0.3983287 -0.33475482 -0.94259983 -0.9947355 0.2411744 0.98935884 0.9510405 -0.89050096 -0.98144454 0.8667396 -0.9580589 -0.96792036 0.927209 0.65795016 -0.508759 0.380887 0.9996097 0.78340584 -0.9718232 -0.29401648 -0.76836896 0.98677874 0.44278124 0.36087555 0.93851113 -0.9787079 -0.101924576 0.02233809 0.72911817 -0.6927694 -0.8636099 -0.98643935 0.6285289 -0.99998206 -0.961541 -0.9774345 0.93700045 0.99873805 -0.4676345 0.6223973 -0.8575138 -0.4686217 1.0 -0.089408025 -0.94910914 0.36757398 1.0 -0.9939769 0.48780176 -0.99790484 0.99984145 0.97930014 -0.9886972 0.8262969 0.9987139 -0.9315561 0.97115785 -0.53182876 0.84110606 -0.9191166 0.9967376 -0.43555433 -0.07942885 0.97651815 -1.0 0.93900305 -0.8075726 -0.96672475 -0.2247467 0.99993074 -0.915094 -0.6600132 0.9650078 -0.46635592 0.7890254 1.0 -0.6936521 0.7009872 -0.99489546 0.27980277 0.9999951 0.9275086 0.987067 0.8557757 0.63495636 -0.17650649 -0.987158 0.7686315 -0.9608778 -0.8154162 -0.5855595 0.70217574 -0.82484055 -0.92152345 0.21325034 -0.94207144 0.98769563 -0.9792845 -0.9948329 0.9819362 -0.8658409 -0.36396298 0.9983053 0.9996046 -0.83588195 -0.43564382 0.9972612 -0.68517184 -0.002742358 0.75273436 -0.99961555 0.9997104 -0.99429685 -0.9933787 -0.15831785 0.5015584 0.9865063 0.9999347 -0.9969 0.99976283 0.9517816 -0.6635047 0.9813161 -0.9976105 -0.99999994 0.1207785 0.9331039 0.38822347 0.51841486 0.96799123 -0.99999887 -0.66314876 0.99491096 0.9295409 0.98828197 0.28057858 0.96609145 -0.07902315 0.7953671 -0.18404925 0.99219203 0.9784089 -0.78135383 0.6425464 0.99471 -0.7078609 -0.3728047 -0.9990264 0.99999994 -0.33997712 0.99620724 0.9286418 0.85606825 0.69076246 0.9999645 -0.9999887 -0.7585565 -0.999942 -0.85372347 0
-0.9999977 -0.9999998 -0.93881065 -0.9214791 0.99826574 0.086761594 -0.9632381 -0.98676735 0.15129422 0.6189909 -0.5483312 -0.9024254 -0.99028873 -0.9889246 0.91592366 0.44365585 -1.0 0.92147815 -0.06460065 0.71762156 -0.56490433 -0.08548679 -0.9764187 -0.77125734 -0.74640393 -0.08028183 -0.999547 0.36437622 -0.9647312 0.4674958 0.993761 0.91243917 0.6060234 0.50794315 -0.9784758 -0.9994831 -0.73378444 0.7692929 -0.26928052 -0.992764 0.9861459 -0.8218429 -0.9998158 -0.9785435 0.887122 -0.99997747 -0.9995177 0.9998891 -0.99999905 0.9984322 -0.9617139 0.27233267 0.9999902 -0.999956 -0.9999029 -0.9467149 -0.9889427 -0.9374782 -0.9447307 0.87209165 0.8391625 -0.99996454 -0.66770625 -0.9887922 0.76040477 0.20514505 0.093942076 -0.99808776 -0.9272062 -0.8423319 -0.9730234 0.89567214 0.34772658 0.99970967 0.9956635 -0.98313195 -0.93720365 0.9999998 -0.90487015 -0.9837689 0.5333564 -0.95288616 -0.5221286 0.62500805 0.9992558 -0.9988711 0.61566585 0.45746908 0.9999801 -0.9957357 -0.9603101 -0.9843133 -0.7909506 0.7471268 -0.99746 -0.99901533 0.15609275 -0.91698754 -0.037064627 0.99999166 0.50947106 0.98764473 -0.9454674 0.995726 -0.9742545 -0.9991576 -0.83255845 -0.660686 0.95413315 -0.44542453 0.99756145 0.89697665 0.7898457 0.99998105 0.9993864 -0.8255303 -0.81061006 -0.9595372 -0.84501946 0.998592 -0.9984053 0.99605155 -0.6271392 -0.08954335 -0.92655176 0.8116178 0.6854471 0.99932766 0.9753511 0.40534732 0.044744767 0.9642817 -0.9704106 -0.99970317 0.9983461 0.46524465 0.97805965 0.51127744 0.86818826 0.029342467 0.96527094 0.99998766 0.9855597 0.4968291 0.8753892 0.38729218 0.31205714 0.9631052 -0.40297425 -0.53024936 -0.06467489 0.9993557 0.118478075 0.6624503 -0.5394336 0.68770325 -0.5705253 -0.99999994 -0.9972441 0.79933333 0.9999988 -0.99553573 -0.98917913 0.73426914 0.9999977 0.97198826 0.9999954 0.47270447 0.9803801 -0.8344201 -0.86816704 0.9999863 0.98631185 0.99677014 -0.99999994 0.9383072 -0.98385066 -0.9488553 0.7597465 -1.0 -0.5981873 0.9999929 0.98647237 0.9710084 0.6181431 0.96976113 -0.9999985 0.9088516 -0.14668542 -0.91904205 0.7192266 -0.99526644 0.8943945 -0.971218 -0.9965776 0.96768665 -0.8231503 -0.30533236 0.9846388 -0.6268219 0.94308215 -0.98382497 -0.9956764 -0.930923 -0.012143871 0.5360002 0.33499014 0.97415644 0.98724043 -0.018134074 0.7395834 -0.81900716 -0.97733736 0.9985818 -0.9987116 -0.83187854 -0.33098257 0.99537134 -0.13176765 0.9987258 -0.9997439 -0.9650415 -0.72828853 -0.959475 0.8461541 -0.83141804 -0.94646096 -0.9302635 -0.9597084 0.99999535 0.9975778 0.52799696 -0.999952 0.47139287 -0.97175324 0.055232305 -0.874997 0.0712296 0.2871106 -0.99647444 -0.8995082 -0.99943095 -0.71118367 0.9865937 -0.86106575 -0.35303283 0.94456273 0.803859 -0.52088404 -0.9945597 -0.7329801 -0.9986125 0.7695478 0.99222136 -0.9603268 0.25229725 -0.8748867 0.22484566 -0.9843893 -0.99789816 0.8915344 -0.72670984 -0.27978107 -0.93908614 -0.9910585 0.999986 -0.78151774 -0.98124564 -0.99992263 0.036508966 0.6575655 0.11978172 0.95520884 0.9643172 0.99489444 -0.86137605 0.020278623 0.9878209 0.8030275 -0.35762984 0.44224977 -0.9880159 0.08772263 -0.11483053 -0.96487594 0.3679879 0.99937403 -0.9998862 -0.9999994 -0.92922425 -0.99300957 0.7995109 0.95614636 -0.6034169 -0.60340405 0.9910219 0.7842643 -0.9215091 -0.6156324 -0.99858075 -0.23306829 -0.9485831 0.33888325 0.8207 -0.9999941 -0.99932045 -0.99999964 0.20090565 0.97961533 -0.9376273 -0.85004866 0.17166966 0.7523312 0.011398388 0.33986345 0.9999019 0.5851748 0.42803535 0.41176963 0.95996577 -0.24879189 1.0 0.81324464 0.9880132 0.53758097 -0.6786016 -0.85124767 -0.99820995 0.99404824 0.07287345 -0.9997448 0.014154338 0.8711833 0.61128235 0.0015988122 0.7160459 -0.9921998 -0.93805933 0.89103854 0.14416654 -0.16123039 0.7282588 0.37152812 0.6975133 0.9018449 -0.9992778 -0.21264812 1.0 -0.9561092 -0.54733884 -0.99565554 0.62485456 -0.17325628 0.98891497 -0.715416 -0.91189015 -0.9876327 0.36807916 0.5560061 -0.34228382 0.40963355 -0.9890041 -0.748041 -0.67438084 -0.9999516 0.8549173 0.9997472 0.9370693 0.78505343 0.97232926 -0.9564343 -0.995746 0.8931961 0.9550249 0.96383226 0.7307431 0.5075263 -0.26737213 -0.94337714 0.84806216 -0.95238346 -0.8845989 0.85654414 -0.9337335 0.9286672 0.77855766 0.11203904 -0.03427782 -0.9704773 -0.8990087 0.99983656 -0.83676267 0.28334844 -0.9352717 0.999957 0.8241737 -0.9941902 0.99995685 -0.7655653 0.99999326 -0.9998148 -0.90057164 -0.99998623 0.83739567 0.87842065 -1.0 -0.060512673 -0.3183372 0.9999983 0.9841126 -0.98683524 0.9572605 0.9920048 -0.99248505 0.73993194 0.9999994 -0.98466057 0.10576511 -0.9560392 0.5377487 0.99965453 -1.0 0.5946483 -0.8743593 -0.46939224 0.9993237 0.9288414 -0.72179157 0.678584 0.73443466 -0.5762949 0.5674019 -0.4907084 -0.96728396 0.39310253 -0.22854275 0.48539314 0.9902557 0.99999994 -0.9828331 -0.16545044 -0.44876787 0.95704615 0.996654 -0.9941663 0.91467756 -1.0 0.9957387 -0.71693575 -0.9999984 0.89263463 -0.4513559 -0.7349872 -0.9918797 0.93804187 0.9101652 -0.9273607 -0.98918885 -0.92406684 -0.9415737 0.9997442 0.4896421 0.8003913 0.9956932 0.9951656 -0.6881254 0.0661598 0.7975352 0.93878675 -0.7504474 0.62030244 -0.0923888 0.51226753 -0.6859988 0.99520504 0.97769743 0.99696285 -0.9998267 0.1562444 -0.9035159 -0.99996716 -0.1575985 -0.8814677 0.99091405 -0.9897373 0.56717503 -0.31200597 -0.9656652 -0.5308505 0.9999434 -0.97686905 0.9357623 -0.3061909 -0.6134764 1.0 0.2953188 -0.9451161 -0.98918605 -0.057882305 -0.83427495 0.96324253 0.99999976 -0.78096664 0.8598212 -0.9975978 -0.36093047 0.8209451 -0.99982804 0.89509356 0.14687312 -0.7967324 -0.8935025 -0.47075132 -0.6392631 -0.14833574 0.18603197 -0.13767926 -0.70170355 0.7432011 1.0 0.592815 0.7138947 -0.94341564 -0.8447373 -0.97573024 -0.7036487 -0.97328234 0.99718535 -0.54109025 0.73180044 0.94774926 0.87761223 -0.8465302 -0.91391337 0.9999626 -0.9885368 -0.9941263 0.9981343 -0.9999912 0.18989828 0.9999991 0.6941514 -0.9337964 -0.9509045 0.9999991 0.072337225 0.91637987 0.019315995 -0.9160248 0.96761435 -0.99251986 -0.9424191 0.6942322 -0.99983495 -0.9994411 0.9999581 -0.9850264 -0.99914455 0.9408345 1.0 -0.32489488 0.9032645 -0.9969801 0.40957755 -0.9998102 0.98041785 0.32979956 -0.99907917 -0.961822 -0.22992668 -0.9995833 -0.97537357 0.07157313 -0.99257034 0.9974103 -0.0148619795 0.60817295 -0.77618307 0.996756 0.26746193 -0.91822934 -0.9969247 0.9924532 -0.71474695 0.9944446 0.6798515 -0.26961648 -0.24137375 0.02945794 0.99998736 -0.9137663 0.92987674 -0.9976349 0.9990388 -0.36640558 -0.9889053 0.9905003 -0.99586475 -0.99886763 0.98753375 -0.103176124 -0.97295755 -0.85987693 0.12164664 -0.9300016 -0.9950167 -0.922123 -0.9977481 -0.6619444 0.98475647 -0.9989868 -0.9916503 0.33590713 0.9818824 -0.1154151 0.9977087 -0.7732936 -0.9844855 -0.17724624 -0.99879056 -0.97223324 -0.22767656 0.9450058 0.98214954 -0.77148896 0.9947601 0.9798654 0.20573545 0.9645021 0.0017151369 0.13722694 0.9977245 -0.7151512 0.5357864 0.96543497 -0.9304438 0.035688426 -0.18650624 -0.8534855 -0.99724555 -0.8734667 0.930216 -0.3543234 -0.946935 -0.9908345 0.79684997 0.940078 0.705101 0.9966121 0.9988653 0.99355185 0.9999903 -0.7271155 -0.99345094 -0.7474667 1.0 -0.82026756 -0.9141189 -0.90930575 0.99861324 0.99962044 -0.9982766 0.9981574 0.99688286 -0.9963409 0.07209997 0.9766453 0.81851137 -0.9999684 0.930686 -0.7612978 0.9166764 0.96593946 -1.0 -0.386806 0.29551718 -0.8764744 0.99537903 0.9963038 0.9702894 -0.83861685 0.08997733 -0.9227462 0.97500694 0.9973239 0.78103626 0.9439572 -0.9930575 0.9348777 0.9999916 0.99859667 0.6633539 0.8738591 -0.75986683 0.30471638 -0.99985546 0.10718185 -0.9817322 -0.13647376 -0.8464992 -0.57857454 -0.946151 -0.4045214 0.6327361 -0.7908545 -0.99791956 -0.9995074 -0.6957948 0.7166626 -0.9704023 -0.81687444 0.99990314 0.9976983 -0.9839047 -0.6029811 0.99634457 0.92434156 0.49054137 0.84128845 -0.999379 0.9534126 -0.99992824 -0.997159 -0.945669 -0.90027994 0.7242044 0.99995875 -0.997933 0.9992261 0.9763415 -0.05275263 0.98689884 -0.99418753 -0.99999994 -0.2600536 0.99848634 0.17939122 -0.2867332 0.7563133 -0.9999975 -0.9731341 0.999838 0.99330145 -0.9978978 -0.9802724 0.8961578 0.84376276 -0.037533544 -0.9809684 0.99724907 -0.44312257 -0.54043996 0.9984618 0.9870029 0.9427101 0.9350459 -0.9930037 1.0 -0.99747664 0.99707824 0.75344527 -0.9691837 0.47046572 0.9999487 -0.9758339 -0.83790505 -0.27356175 -0.8727474 1
-1.0 -0.9999999 0.91754055 -0.98246956 0.9500188 0.6549721 0.82975924 0.69148725 0.9943372 0.9715731 -0.97478473 0.62774026 0.09393513 -0.17619492 0.894608 -0.79799056 -0.99999994 0.070943266 -0.70839226 0.93680024 -0.72864294 0.98932415 -0.9072218 0.85301876 -0.73792046 -0.8242249 -0.9408984 -0.89787626 -0.99601305 -0.67417383 -0.4083113 0.99914587 -0.9443622 -0.9029408 0.9902613 -0.9948039 -0.4291084 0.44304112 -0.47864744 -0.94215727 0.9951312 -0.66509736 -0.9793742 -0.30995706 -0.49004316 -0.9999887 -0.9447523 0.9999988 -0.9999993 -0.56774485 0.16646148 -0.5696571 0.9981993 -0.99666333 -0.9355815 -0.7926235 0.97492737 0.98056364 -0.9672518 0.9518885 -0.46568933 -0.9694491 0.99818045 -0.8478657 0.30453557 0.047696967 0.6930717 -0.9556029 -0.24389017 0.99491024 0.2949327 -0.53895706 0.99240047 -0.98165786 -0.66416156 -0.9624518 -0.69189733 1.0 0.68795884 -0.99559367 0.541328 -0.9995067 0.99967396 0.5366305 0.9999988 -0.785518 -0.61344254 0.4912435 0.97544384 -0.9968652 -0.7812114 -0.92922366 0.9433364 0.72058123 -0.9013846 -0.9990782 0.9863425 0.6431254 0.9130596 0.99515283 -0.106632546 0.9947319 -0.99749154 -0.7961206 -0.27998316 -0.9999753 0.61315155 -0.98568124 0.97180283 -0.11776495 0.97334003 0.99061525 0.9033766 0.98012125 0.9996189 -0.9985029 -0.9953451 -0.76238215 0.459234 0.9874234 -0.9999976 0.99706256 -0.82826865 0.6886246 -0.99961174 0.9978328 0.71272206 0.36687487 -0.8783054 0.6123061 0.98592705 0.9702559 -0.026479416 -0.62814903 0.86120737 -0.56825554 0.8490063 0.5970136 0.9999796 0.85008067 -0.9839186 0.99977976 0.97686523 0.9311469 0.46768236 0.9731661 0.80862206 -0.92172545 -0.817649 0.97080314 0.96562123 0.3707569 -0.9310857 0.76978254 0.7142769 0.59369427 -0.9102226 -1.0 -0.99999803 0.053464375 0.9994069 -0.9023869 -0.9981267 -0.7218602 1.0 0.9856292 0.99999845 0.5367903 0.99482757 -0.9985497 -0.59352523 0.99999994 0.45068955 0.99744123 -0.9999996 0.70428264 0.7167901 -0.14289832 0.8409331 -1.0 -0.97958666 0.999978 0.9989787 0.3952837 -0.42988425 -0.42369172 -0.9999999 0.99550414 -0.9453626 -0.99895674 0.9915389 -0.61716145 -0.9407398 -0.88419956 -0.9999384 0.015474038 0.97351134 0.85836804 0.6897588 -0.8579756 0.76961243 0.74002767 -0.5012677 -0.12579185 0.97566175 -0.63353986 -0.200788 0.99991643 0.95353115 -0.83195364 0.16760784 -0.34576526 -0.4999651 -0.6689915 -0.67944753 -0.9254003 0.38624477 -0.9768063 0.9406264 0.9996201 -0.99999255 0.6907002 -0.0045599076 -0.4754914 -0.8361639 -0.9501735 -0.12382245 -0.75466174 -0.9861298 1.0 0.7492832 -0.942792 -0.9999841 0.9363543 -0.99858475 0.19403893 -0.91182774 0.9763715 -0.021505825 -0.8292698 0.73908675 -0.97738695 0.9541983 0.9950421 -0.41656834 0.2638597 -0.96350205 0.21943548 -0.80859274 -0.8449268 -0.99578375 0.58377564 0.94400084 0.39917758 -0.6807178 0.73661983 -0.9381599 0.7736006 -0.91143394 -0.9999176 -0.026739864 0.5074609 -0.9998846 -0.90298057 -0.9380323 0.939098 -0.9892658 -0.65785027 -0.9999777 0.8441728 -0.95492697 0.7653734 0.9915638 -0.58459926 -0.8974051 -0.8321377 0.9023703 -0.1240945 0.99789816 -0.36939704 0.9681395 0.8764832 0.8793837 0.26966015 0.52591145 0.54143614 0.9974489 -0.99999887 -0.9995423 0.9686399 -0.99999726 0.9735763 -0.13366118 0.9259022 -0.9685884 0.041811805 -0.07641122 -0.55017114 -0.76262814 -0.99992675 0.20398967 -0.9866815 -0.24541686 -0.013162011 -0.99988574 -0.575596 -0.9999786 -0.31609833 0.9834728 -0.99992377 -0.9903728 -0.9005861 -0.21421811 -0.9983817 -0.9928362 0.9999069 -0.525784 0.984584 0.93735874 0.6939878 0.052228108 1.0 -0.720231 0.90242577 0.7063996 -0.1718762 -0.51531446 0.85066783 0.9713207 -0.19994953 -0.9688899 0.4335915 -0.9629413 0.52330375 0.97482306 0.54208726 -0.9113892 -0.99704075 0.38730267 -0.85219514 -0.23908 0.99860007 0.97109157 -0.079503894 0.95762366 -0.99997073 -0.9953353 1.0 -0.98349583 -0.63241374 -0.72810876 0.47133923 -0.86356467 -0.94960356 0.82563925 -0.9039649 0.92927504 0.87676245 0.8044077 0.94873756 0.89447325 -0.1708352 -0.8016219 0.9025065 -0.9999613 -0.9840799 0.9651552 -0.80273485 0.99276304 0.7963923 0.57485193 -0.8111918 -0.8958154 -0.09884896 0.9502939 0.68417585 0.8976841 0.9351989 -0.9959452 -0.13331503 -0.9968692 -0.905369 0.032176066 -0.43012238 -0.41135198 0.848756 0.6008831 -0.99474764 -0.93879145 0.7689053 0.9999938 -0.25068578 0.99898773 -0.6273025 0.9981161 0.9646458 0.9892329 0.9984605 0.9997109 0.9999789 -0.32421193 0.94486535 -0.9999964 -0.9945036 0.30834958 -1.0 -0.9750891 -0.6609992 0.99996203 -0.9819296 0.23148519 0.6919267 -0.17868574 -0.99887645 0.9990021 0.99999917 -0.97334605 -0.54114515 -0.8981867 0.4566286 -0.89272505 -1.0 0.77854955 0.8460941 -0.7277502 0.9999942 -0.95675933 -0.6105014 -0.6248779 -0.6482775 -0.9180631 -0.15462019 -0.9960864 0.3092323 0.70793474 -0.44651595 0.9277428 0.98076856 1.0 0.6081972 0.6742095 -0.94150054 -0.36421892 0.62882423 -0.99796766 -0.15812355 -0.99998593 0.98780656 -0.5921899 -0.9264538 0.9494169 0.30242145 0.20202693 -0.99960434 -0.7204393 0.40476122 0.39310983 -0.7115996 -0.20635745 -0.4092144 0.99998903 -0.9984944 0.8239089 0.999999 0.992397 -0.60459787 -0.9965503 0.97866595 0.94301736 -0.6387423 0.99159604 -0.9214562 -0.31008676 0.115627386 0.9996317 0.99996835 0.9999804 0.13454019 -0.8552828 -0.2782192 -0.9998367 0.29314566 -0.8513002 0.94715697 -0.03428054 -0.08672477 -0.8434793 -0.50190043 0.789915 0.9999975 -0.8473984 0.9833842 0.7211604 0.38482457 1.0 0.95863414 -0.997747 -0.98452455 -0.929252 -0.8157073 0.5448302 0.9999981 0.9085984 0.9997405 -0.86488986 -0.6432235 0.41432178 -0.99997234 -0.86036164 -0.8111141 -0.33195117 0.6542816 -0.9999745 0.9983634 -0.9009806 0.031048445 0.30098918 -0.32848787 -0.88890994 1.0 0.9920936 0.6675093 -0.064740315 -0.98808336 0.9998223 0.98520696 -0.7864621 0.99904895 0.59422886 -0.31147093 0.9848008 -0.96558404 -0.9976655 -0.997656 0.33554083 0.39643312 -0.8953401 0.99973357 -0.99999714 0.8810939 0.9998959 -0.84610665 0.956891 -0.6247114 0.99994785 0.6877202 -0.5850471 0.9858794 -0.6615376 0.9221119 -0.7542331 -0.9584882 -0.24057443 -1.0 -0.9975763 0.9999063 -0.9936229 0.30156672 0.9401155 0.99999976 -0.7845509 -0.98812896 -0.99887645 -0.82765806 -0.9999273 -0.86908937 -0.9460884 -0.97256356 0.29356736 0.88049597 -0.98755455 -0.93099445 0.9918681 -0.49376363 0.0295274 0.39625356 -0.8877101 0.48624298 0.8727981 -0.13852862 0.8964549 -0.9999303 0.9999904 -0.9908097 0.9484811 0.78399086 0.91179377 0.30335334 -0.5895666 0.996319 -0.93612933 -0.4900408 -0.54762197 0.9999432 -0.5140531 -0.8832835 -0.022836804 -0.29026562 -0.9382205 0.5490894 0.9617305 -0.44794714 0.2441226 -0.991097 -0.9093415 -0.9846891 0.7687775 -0.9999952 -0.44614902 0.5591742 0.4386189 -0.8350307 -0.9097685 0.65346175 0.9910687 0.9944689 -0.9693288 -0.98500127 -0.33422586 -0.8875717 -0.9944601 0.96855646 -0.08242136 -0.61577976 0.037052695 0.9994455 0.19259727 -0.94470364 0.039159678 -0.8567027 0.9233936 -0.100868665 -0.124762855 0.8620807 -0.9553262 -0.42653376 -0.7176295 0.89609313 -0.06638076 -0.02485276 -0.9458169 0.32300743 -0.9999719 -0.9760314 -0.9992168 0.9289512 0.95043844 0.9481704 0.98556197 -0.55351686 -0.47454906 0.99999976 0.66813236 -0.7003366 0.66086745 1.0 -0.9233755 0.25717148 -0.99991375 0.99991876 0.8661739 -0.80518407 0.96468526 0.97266036 -0.9917282 0.9922263 -0.64286435 0.8628788 0.1353293 0.994207 -0.7711558 -0.120794766 0.80352 -1.0 0.96855307 -0.731797 -0.7547492 -0.20845844 0.9999607 -0.59162617 0.47989732 0.9896476 -0.98236346 0.9882714 0.99999964 0.08750912 0.47451445 -0.9875244 0.29316688 0.9999501 0.99692875 0.93303627 0.6522245 -0.5521537 -0.36325985 -0.99013996 0.91541886 -0.79438996 -0.96436757 0.14376909 0.79922646 -0.6978308 -0.94706684 0.3037744 -0.9227594 0.89376473 -0.98733544 -0.9542534 0.9423359 -0.9223392 -0.8170252 0.9974132 0.99964577 -0.9599287 0.5561011 0.99930817 -0.031173818 0.9409823 0.93238556 -0.9960135 0.99944484 -0.96108025 -0.914049 -0.6105318 -0.64838517 0.96406263 0.9996509 -0.9981671 0.9999276 0.8979043 -0.9233479 0.983884 -0.99703944 -0.99999905 0.8993983 0.41637322 0.25362557 0.3663862 0.98621625 -0.9999902 0.09194317 0.998134 0.75452584 0.94763565 -0.78139144 0.9251551 -0.16449915 0.7558825 -0.61916995 0.99407 0.98770005 -0.7486478 0.68050325 0.99341464 0.20712593 0.121428765 -0.99832517 0.99999994 0.546869 0.7774558 0.78346616 0.948524 -0.24188636 0.9996661 -0.99988973 -0.73184645 -0.99986756 -0.9991098 8
\ No newline at end of file
# -*- coding=utf8 -*-
"""
# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""
import json
import pickle
import time
import random
import os
import numpy as np
import sys
import paddle.fluid.incubate.data_generator as dg
class TDMDataset(dg.MultiSlotStringDataGenerator):
"""
DacDataset: inheritance MultiSlotDataGeneratior, Implement data reading
Help document: http://wiki.baidu.com/pages/viewpage.action?pageId=728820675
"""
def infer_reader(self, infer_file_list, batch):
"""
Read test_data line by line & yield batch
"""
def local_iter():
"""Read file line by line"""
for fname in infer_file_list:
with open(fname, "r") as fin:
for line in fin:
one_data = (line.strip('\n')).split('\t')
input_emb = one_data[0].split(' ')
yield [input_emb]
import paddle
batch_iter = paddle.batch(local_iter, batch)
return batch_iter
def generate_sample(self, line):
"""
Read the data line by line and process it as a dictionary
"""
def iterator():
"""
This function needs to be implemented by the user, based on data format
"""
features = (line.strip('\n')).split('\t')
input_emb = features[0].split(' ')
item_label = [features[1]]
feature_name = ["input_emb", "item_label"]
yield zip(feature_name, [input_emb] + [item_label])
return iterator
if __name__ == "__main__":
d = TDMDataset()
d.run_from_stdin()
# -*- coding=utf-8 -*-
"""
# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""
from __future__ import print_function
import os
import time
import numpy as np
import logging
import random
from shutil import copyfile
import paddle.fluid as fluid
import paddle.fluid.incubate.fleet.base.role_maker as role_maker
from paddle.fluid.incubate.fleet.parameter_server.distribute_transpiler import fleet
from paddle.fluid.incubate.fleet.utils.hdfs import HDFSClient
from paddle.fluid.incubate.fleet.parameter_server.distribute_transpiler.distributed_strategy import StrategyFactory
from args import print_arguments, parse_args
from utils import tdm_sampler_prepare, tdm_child_prepare, tdm_emb_prepare
from train_network import TdmTrainNet
logging.basicConfig(format="%(asctime)s - %(levelname)s - %(message)s")
logger = logging.getLogger("fluid")
logger.setLevel(logging.INFO)
hadoop_home = os.getenv("HADOOP_HOME")
configs = {
"fs.default.name": os.getenv("FS_NAME"),
"hadoop.job.ugi": os.getenv("FS_UGI")
}
client = HDFSClient(hadoop_home, configs)
def get_dataset(inputs, args):
"""get dataset"""
dataset = fluid.DatasetFactory().create_dataset()
dataset.set_use_var(inputs)
dataset.set_pipe_command("python ./dataset_generator.py")
dataset.set_batch_size(args.batch_size)
dataset.set_thread(int(args.cpu_num))
file_list = [
str(args.train_files_path) + "/%s" % x
for x in os.listdir(args.train_files_path)
]
# 请确保每一个训练节点都持有不同的训练文件
# 当我们用本地多进程模拟分布式时,每个进程需要拿到不同的文件
# 使用 fleet.split_files 可以便捷的以文件为单位分配训练样本
if not int(args.is_cloud):
file_list = fleet.split_files(file_list)
logger.info("file list: {}".format(file_list))
total_example_num = get_example_num(file_list)
return dataset, file_list, total_example_num
def train(args):
"""run train"""
# set random
program = fluid.default_main_program()
program.random_seed = args.random_seed
# 根据环境变量确定当前机器/进程在分布式训练中扮演的角色
# 然后使用 fleet api的 init()方法初始化这个节点
role = role_maker.PaddleCloudRoleMaker()
fleet.init(role)
# 我们还可以进一步指定分布式的运行模式,通过 DistributeTranspilerConfig进行配置
# 如下,我们设置分布式运行模式为异步(async),同时将参数进行切分,以分配到不同的节点
if args.sync_mode == "sync":
strategy = StrategyFactory.create_sync_strategy()
elif args.sync_mode == "half_async":
strategy = StrategyFactory.create_half_async_strategy()
elif args.sync_mode == "async":
strategy = StrategyFactory.create_async_strategy()
# set model
logger.info("TDM Begin build network.")
tdm_model = TdmTrainNet(args)
inputs = tdm_model.input_data()
logger.info("TDM Begin load tree travel & layer.")
avg_cost, acc = tdm_model.tdm(inputs)
logger.info("TDM End build network.")
# 配置分布式的optimizer,传入我们指定的strategy,构建program
optimizer = fluid.optimizer.AdamOptimizer(
learning_rate=args.learning_rate, lazy_mode=True)
optimizer = fleet.distributed_optimizer(optimizer, strategy)
optimizer.minimize(avg_cost)
logger.info("TDM End append backward.")
# 根据节点角色,分别运行不同的逻辑
if fleet.is_server():
logger.info("TDM Run server ...")
# 初始化及运行参数服务器节点
logger.info("TDM init model path: {}".format(
args.init_model_files_path))
# 模型中除了tdm树结构相关的变量都应该在此处初始化
fleet.init_server(args.init_model_files_path)
lr = fluid.global_scope().find_var("learning_rate_0")
if lr:
lr.get_tensor().set(np.array(args.learning_rate).astype('float32'),
fluid.CPUPlace())
logger.info("TDM Set learning rate {}".format(args.learning_rate))
else:
logger.info("TDM Didn't find learning_rate_0 param")
logger.info("TDM load End")
fleet.run_server()
logger.info("TDM Run server success!")
elif fleet.is_worker():
logger.info("TDM Run worker ...")
# 初始化工作节点
fleet.init_worker()
place = fluid.CPUPlace()
exe = fluid.Executor(place)
logger.info("TDM Run Startup Begin")
# 初始化含有分布式流程的fleet.startup_program
exe.run(fleet.startup_program)
# Set Learning Rate
lr = fluid.global_scope().find_var("learning_rate_0")
if lr:
lr.get_tensor().set(np.array(args.learning_rate).astype('float32'),
place)
logger.info("TDM Set learning rate {}".format(args.learning_rate))
# Set TDM Variable
logger.info("TDM Begin load parameter.")
# Set TDM_Tree_Info
# 树结构相关的变量不参与网络更新,不存储于参数服务器,因此需要在本地手动Set
tdm_param_prepare_dict = tdm_sampler_prepare(args)
tdm_param_prepare_dict['info_array'] = tdm_child_prepare(args)
Numpy_model = {}
Numpy_model['TDM_Tree_Travel'] = tdm_param_prepare_dict['travel_array']
Numpy_model['TDM_Tree_Layer'] = tdm_param_prepare_dict['layer_array']
Numpy_model['TDM_Tree_Info'] = tdm_param_prepare_dict['info_array']
# Numpy_model['TDM_Tree_Emb'] = tdm_emb_prepare(args)
# 分布式训练中,Emb存储与参数服务器,无需在本地set
for param_name in Numpy_model:
param_t = fluid.global_scope().find_var(param_name).get_tensor()
param_t.set(Numpy_model[str(param_name)].astype('int32'), place)
logger.info("TDM Run Startup End")
# Train loop
dataset, file_list, example_num = get_dataset(inputs, args)
logger.info("TDM Distributed training begin ...")
for epoch in range(args.epoch_num):
# local shuffle
random.shuffle(file_list)
dataset.set_filelist(file_list)
# 训练节点运行的是经过分布式裁剪的fleet.mian_program
start_time = time.time()
exe.train_from_dataset(program=fleet.main_program,
dataset=dataset,
fetch_list=[acc, avg_cost],
fetch_info=["Epoch {} acc ".format(
epoch), "Epoch {} loss ".format(epoch)],
print_period=1,
debug=False)
end_time = time.time()
logger.info("Epoch {} finished, use time {} second, speed {} example/s".format(
epoch, end_time - start_time, example_num * 1.0 / (end_time - start_time)))
# 默认使用0号节点保存模型
if fleet.is_first_worker():
model_path = os.path.join(
args.model_files_path, "epoch_" + str(epoch))
fleet.save_persistables(executor=exe, dirname=model_path)
logger.info("Begin upload files")
# upload_files(model_path, warm_up=False)
# 在分布式环境下时,支持上传模型到hdfs
logger.info("TDM Before stop worker")
fleet.stop_worker()
logger.info("TDM Distributed training success!")
def upload_files(local_path, warm_up=False):
"""
upload files to hdfs
"""
remote = os.getenv("OUTPUT_PATH")
job_id = os.getenv("SYS_JOB_ID")
local = local_path.split('/')[-1]
remote_path = "{}/{}/{}/{}".format(remote, job_id, "model", local)
client.makedirs(remote_path)
hadoop_path = "{}/".format(remote_path)
def is_adam_param(name):
adam_name = ['bias_beta', 'bias_moment',
'moment1_0', 'moment2_0', 'pow_acc']
for i in adam_name:
if i in name:
return True
return False
if not warm_up:
infer_model_path = os.path.join(os.getcwd(), 'infer_model_'+local)
if not os.path.exists(infer_model_path):
os.makedirs(infer_model_path)
for root, _, files in os.walk(local_path):
for f in files:
if not is_adam_param(f):
copyfile(os.path.join(root, f),
os.path.join(infer_model_path, f))
local_path = infer_model_path
client.upload(hdfs_path=hadoop_path, local_path=local_path,
multi_processes=5, overwrite=False,
retry_times=3)
def get_example_num(file_list):
"""
Count the number of samples in the file
"""
count = 0
for f in file_list:
last_count = count
for index, line in enumerate(open(f, 'r')):
count += 1
logger.info("file : %s has %s example" % (f, count - last_count))
logger.info("Total example : %s" % count)
return count
if __name__ == "__main__":
print(os.getcwd())
args = parse_args()
print_arguments(args)
train(args)
# -*- coding=utf-8 -*-
"""
# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""
import math
import argparse
import numpy as np
import paddle.fluid as fluid
from utils import tdm_sampler_prepare, tdm_child_prepare, trace_var
from train_network import DnnLayerClassifierNet, InputTransNet
class TdmInferNet(object):
def __init__(self, args):
self.input_embed_size = args.query_emb_size
self.node_embed_size = args.node_emb_size
self.label_nums = 2 # label为正负两类
self.node_nums = args.node_nums
self.max_layers = args.layer_size
self.batch_size = args.batch_size
self.topK = args.topK # 最终召回多少个item
self.child_nums = args.child_nums # 若树为二叉树,则child_nums=2
self.layer_list = self.get_layer_list(args)
self.first_layer_idx = 0
self.first_layer_node = self.create_first_layer(args)
self.layer_classifier = DnnLayerClassifierNet(args)
self.input_trans_net = InputTransNet(args)
def input_data(self):
input_emb = fluid.layers.data(
name="input_emb",
shape=[self.input_embed_size],
dtype="float32",
)
# first_layer 与 first_layer_mask 对应着infer起始层的节点
first_layer = fluid.layers.data(
name="first_layer_node",
shape=[1],
dtype="int64",
lod_level=1,
)
first_layer_mask = fluid.layers.data(
name="first_layer_node_mask",
shape=[1],
dtype="int64",
lod_level=1,
)
inputs = [input_emb] + [first_layer] + [first_layer_mask]
return inputs
def get_layer_list(self, args):
"""get layer list from layer_list.txt"""
layer_list = []
with open(args.tree_layer_init_path, 'r') as fin:
for line in fin.readlines():
l = []
layer = (line.split('\n'))[0].split(',')
for node in layer:
if node:
l.append(node)
layer_list.append(l)
return layer_list
def create_first_layer(self, args):
"""decide which layer to start infer"""
first_layer_id = 0
for idx, layer_node in enumerate(args.layer_node_num_list):
if layer_node >= self.topK:
first_layer_id = idx
break
first_layer_node = self.layer_list[first_layer_id]
self.first_layer_idx = first_layer_id
return first_layer_node
def infer_net(self, inputs):
"""
infer的主要流程
infer的基本逻辑是:从上层开始(具体层idx由树结构及TopK值决定)
1、依次通过每一层分类器,得到当前层输入的指定节点的prob
2、根据prob值大小,取topK的节点,取这些节点的孩子节点作为下一层的输入
3、循环1、2步骤,遍历完所有层,得到每一层筛选结果的集合
4、将筛选结果集合中的叶子节点,拿出来再做一次topK,得到最终的召回输出
"""
input_emb = inputs[0]
current_layer_node = inputs[1]
current_layer_child_mask = inputs[2]
node_score = []
node_list = []
input_trans_emb = self.input_trans_net.input_fc_infer(input_emb)
for layer_idx in range(self.first_layer_idx, self.max_layers):
# 确定当前层的需要计算的节点数
if layer_idx == self.first_layer_idx:
current_layer_node_num = len(self.first_layer_node)
else:
current_layer_node_num = current_layer_node.shape[1] * \
current_layer_node.shape[2]
current_layer_node = fluid.layers.reshape(
current_layer_node, [-1, current_layer_node_num])
current_layer_child_mask = fluid.layers.reshape(
current_layer_child_mask, [-1, current_layer_node_num])
node_emb = fluid.embedding(
input=current_layer_node,
size=[self.node_nums, self.node_embed_size],
param_attr=fluid.ParamAttr(name="TDM_Tree_Emb"))
input_fc_out = self.input_trans_net.layer_fc_infer(
input_trans_emb, layer_idx)
# 过每一层的分类器
layer_classifier_res = self.layer_classifier.classifier_layer_infer(input_fc_out,
node_emb,
layer_idx)
# 过最终的判别分类器
tdm_fc = fluid.layers.fc(input=layer_classifier_res,
size=self.label_nums,
act=None,
num_flatten_dims=2,
param_attr=fluid.ParamAttr(
name="tdm.cls_fc.weight"),
bias_attr=fluid.ParamAttr(name="tdm.cls_fc.bias"))
prob = fluid.layers.softmax(tdm_fc)
positive_prob = fluid.layers.slice(
prob, axes=[2], starts=[1], ends=[2])
prob_re = fluid.layers.reshape(
positive_prob, [-1, current_layer_node_num])
# 过滤掉padding产生的无效节点(node_id=0)
node_zero_mask = fluid.layers.cast(current_layer_node, 'bool')
node_zero_mask = fluid.layers.cast(node_zero_mask, 'float')
prob_re = prob_re * node_zero_mask
# 在当前层的分类结果中取topK,并将对应的score及node_id保存下来
k = self.topK
if current_layer_node_num < self.topK:
k = current_layer_node_num
_, topk_i = fluid.layers.topk(prob_re, k)
# index_sample op根据下标索引tensor对应位置的值
# 若paddle版本>2.0,调用方式为paddle.index_sample
top_node = fluid.contrib.layers.index_sample(
current_layer_node, topk_i)
prob_re_mask = prob_re * current_layer_child_mask # 过滤掉非叶子节点
topk_value = fluid.contrib.layers.index_sample(
prob_re_mask, topk_i)
node_score.append(topk_value)
node_list.append(top_node)
# 取当前层topK结果的孩子节点,作为下一层的输入
if layer_idx < self.max_layers - 1:
# tdm_child op 根据输入返回其 child 及 child_mask
# 若child是叶子节点,则child_mask=1,否则为0
current_layer_node, current_layer_child_mask = \
fluid.contrib.layers.tdm_child(x=top_node,
node_nums=self.node_nums,
child_nums=self.child_nums,
param_attr=fluid.ParamAttr(
name="TDM_Tree_Info"),
dtype='int64')
total_node_score = fluid.layers.concat(node_score, axis=1)
total_node = fluid.layers.concat(node_list, axis=1)
# 考虑到树可能是不平衡的,计算所有层的叶子节点的topK
res_score, res_i = fluid.layers.topk(total_node_score, self.topK)
res_layer_node = fluid.contrib.layers.index_sample(total_node, res_i)
res_node = fluid.layers.reshape(res_layer_node, [-1, self.topK, 1])
# 利用Tree_info信息,将node_id转换为item_id
tree_info = fluid.default_main_program().global_block().var("TDM_Tree_Info")
res_node_emb = fluid.layers.gather_nd(tree_info, res_node)
res_item = fluid.layers.slice(
res_node_emb, axes=[2], starts=[0], ends=[1])
res_item_re = fluid.layers.reshape(res_item, [-1, self.topK])
return res_item_re
#!/bin/bash
echo "WARNING: This script only for run PaddlePaddle Fluid on one node"
CLUSTER_DIRS="./"
if [ ! -d "${CLUSTER_DIRS}/model" ]; then
mkdir "${CLUSTER_DIRS}/model"
echo "Create model folder for store infer model"
fi
if [ ! -d "${CLUSTER_DIRS}/log" ]; then
mkdir "${CLUSTER_DIRS}/log"
echo "Create log floder for store running log"
fi
if [ ! -d "${CLUSTER_DIRS}/output" ]; then
mkdir "${CLUSTER_DIRS}/output"
echo "Create output floder"
fi
# environment variables for fleet distribute training
export PADDLE_TRAINER_ID=0
export PADDLE_TRAINERS_NUM=1
export OUTPUT_PATH="output"
export SYS_JOB_ID="test"
export FLAGS_communicator_thread_pool_size=5
export FLAGS_communicator_fake_rpc=0
export FLAGS_communicator_is_sgd_optimizer=0
export FLAGS_communicator_send_queue_size=1
export FLAGS_communicator_max_merge_var_num=1
export FLAGS_communicator_max_send_grad_num_before_recv=1
export FLAGS_communicator_min_send_grad_num_before_recv=1
export FLAGS_rpc_retry_times=3
export PADDLE_PSERVERS_IP_PORT_LIST="127.0.0.1:36001"
export PADDLE_PSERVER_PORT_ARRAY=(36001)
export PADDLE_PSERVER_NUMS=1
export PADDLE_TRAINERS=1
export TRAINING_ROLE=PSERVER
export GLOG_v=0
export GLOG_logtostderr=0
ps -ef|grep python|awk '{print $2}'|xargs kill -9
train_mode=$1
for((i=0;i<$PADDLE_PSERVER_NUMS;i++))
do
cur_port=${PADDLE_PSERVER_PORT_ARRAY[$i]}
echo "PADDLE WILL START PSERVER "$cur_port
export PADDLE_PORT=${cur_port}
export POD_IP=127.0.0.1
sh ./async_train.sh &> ./log/pserver.$i.log &
done
export TRAINING_ROLE=TRAINER
export GLOG_v=0
export GLOG_logtostderr=0
for((i=0;i<$PADDLE_TRAINERS;i++))
do
echo "PADDLE WILL START Trainer "$i
PADDLE_TRAINER_ID=$i
sh ./async_train.sh &> ./log/trainer.$i.log &
done
echo "Training log stored in ./log/"
# -*- coding=utf-8 -*-
"""
# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""
from __future__ import print_function
import os
import time
import numpy as np
import logging
import argparse
import paddle
import paddle.fluid as fluid
from paddle.fluid import profiler
from args import print_arguments, parse_args
from infer_network import TdmInferNet
from dataset_generator import TDMDataset
logging.basicConfig(format="%(asctime)s - %(levelname)s - %(message)s")
logger = logging.getLogger("fluid")
logger.setLevel(logging.INFO)
def to_tensor(data, place):
"""
Convert data to paddle tensor
"""
flattened_data = np.concatenate(data, axis=0).astype("float32")
flattened_data = flattened_data.reshape([-1, 768])
res = fluid.Tensor()
res.set(flattened_data, place)
return res
def data2tensor(data, place):
"""
Dataset prepare
"""
input_emb = to_tensor([x[0] for x in data], place)
return input_emb
def run_infer(args, model_path):
"""run infer"""
logger.info("Infer Begin")
file_list = [
str(args.test_files_path) + "/%s" % x
for x in os.listdir(args.test_files_path)
]
tdm_model = TdmInferNet(args)
inputs = tdm_model.input_data()
res_item = tdm_model.infer_net(inputs)
test_reader = TDMDataset().infer_reader(file_list, args.batch_size)
place = fluid.CPUPlace()
exe = fluid.Executor(place)
path = os.path.join(args.model_files_path, model_path)
fluid.io.load_persistables(
executor=exe,
dirname=path,
main_program=fluid.default_main_program())
logger.info("Load persistables from \"{}\"".format(path))
if args.save_init_model:
logger.info("Begin Save infer model.")
model_path = (str(args.model_files_path) + "/" + "infer_model")
fluid.io.save_inference_model(executor=exe, dirname=model_path,
feeded_var_names=[
'input_emb', 'first_layer_node', 'first_layer_node_mask'],
target_vars=[res_item])
logger.info("End Save infer model.")
first_layer_node = tdm_model.first_layer_node
first_layer_nums = len(first_layer_node)
first_layer_node = np.array(first_layer_node)
first_layer_node = first_layer_node.reshape((1, -1)).astype('int64')
first_layer_node = first_layer_node.repeat(args.batch_size, axis=0)
# 在demo中,假设infer起始层的节点都不是叶子节点,mask=0
# 若真实的起始层含有叶子节点,则对应位置的 mask=1
first_layer_mask = (
np.zeros((args.batch_size, first_layer_nums))).astype('int64')
for batch_id, data in enumerate(test_reader()):
input_emb = data2tensor(data, place)
item_res = exe.run(fluid.default_main_program(),
feed={"input_emb": input_emb,
"first_layer_node": first_layer_node,
"first_layer_node_mask": first_layer_mask},
fetch_list=[res_item])
logger.info("TEST --> batch: {} infer_item {}".format(
batch_id, item_res))
logger.info("Inference complete!")
if __name__ == "__main__":
args = parse_args()
print_arguments(args)
# 在此处指定infer模型所在的文件夹
path = "epoch_0"
run_infer(args, path)
# -*- coding=utf-8 -*-
"""
# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""
from __future__ import print_function
import os
import time
import numpy as np
import logging
import argparse
import paddle
import paddle.fluid as fluid
from args import print_arguments, parse_args
from utils import tdm_sampler_prepare, tdm_child_prepare
from train_network import TdmTrainNet
logging.basicConfig(format="%(asctime)s - %(levelname)s - %(message)s")
logger = logging.getLogger("fluid")
logger.setLevel(logging.INFO)
def get_dataset(inputs, args):
"""
get dataset
"""
dataset = fluid.DatasetFactory().create_dataset()
dataset.set_use_var(inputs)
dataset.set_pipe_command("python ./dataset_generator.py")
dataset.set_batch_size(args.batch_size)
dataset.set_thread(int(args.cpu_num))
file_list = [
str(args.train_files_path) + "/%s" % x
for x in os.listdir(args.train_files_path)
]
dataset.set_filelist(file_list)
logger.info("file list: {}".format(file_list))
return dataset
def run_train(args):
"""
run train
"""
logger.info("TDM Begin build network.")
tdm_model = TdmTrainNet(args)
inputs = tdm_model.input_data()
avg_cost, acc = tdm_model.tdm(inputs)
logger.info("TDM End build network.")
dataset = get_dataset(inputs, args)
optimizer = fluid.optimizer.AdamOptimizer(
learning_rate=args.learning_rate,
lazy_mode=True)
optimizer.minimize(avg_cost)
place = fluid.CPUPlace()
exe = fluid.Executor(place)
exe.run(fluid.default_startup_program())
if args.load_model:
# 从paddle二进制模型加载参数
path = args.init_model_files_path
fluid.io.load_persistables(
executor=exe,
dirname=path,
main_program=fluid.default_main_program())
lr = fluid.global_scope().find_var("learning_rate_0").get_tensor()
lr.set(np.array(args.learning_rate).astype('float32'), place)
logger.info("Load persistables from \"{}\"".format(path))
else:
# 将明文树结构及数据,set到组网中的Variale中
# 不使用NumpyInitialize方法是考虑到树结构相关数据size过大,有性能风险
Numpy_model = {}
Numpy_model['TDM_Tree_Travel'] = tdm_model.tdm_param_prepare_dict['travel_array']
Numpy_model['TDM_Tree_Layer'] = tdm_model.tdm_param_prepare_dict['layer_array']
Numpy_model['TDM_Tree_Info'] = tdm_model.tdm_param_prepare_dict['info_array']
Numpy_model['TDM_Tree_Emb'] = tdm_model.tdm_param_prepare_dict['emb_array']
for param_name in Numpy_model:
param_t = fluid.global_scope().find_var(param_name).get_tensor()
if param_name == 'TDM_Tree_Emb':
param_t.set(Numpy_model[str(param_name)
].astype('float32'), place)
else:
param_t.set(Numpy_model[str(param_name)
].astype('int32'), place)
if args.save_init_model or not args.load_model:
logger.info("Begin Save Init model.")
model_path = os.path.join(args.model_files_path, "init_model")
fluid.io.save_persistables(executor=exe, dirname=model_path)
logger.info("End Save Init model.")
logger.info("TDM Local training begin ...")
for epoch in range(args.epoch_num):
start_time = time.time()
exe.train_from_dataset(
program=fluid.default_main_program(),
dataset=dataset,
fetch_list=[acc, avg_cost],
fetch_info=["Epoch {} acc".format(
epoch), "Epoch {} loss".format(epoch)],
print_period=1,
debug=False,
)
end_time = time.time()
logger.info("Epoch %d finished, use time=%d sec\n" %
(epoch, end_time - start_time))
model_path = os.path.join(args.model_files_path, "epoch_" + str(epoch))
fluid.io.save_persistables(executor=exe, dirname=model_path)
logger.info("Local training success!")
if __name__ == "__main__":
args = parse_args()
print_arguments(args)
run_train(args)
# -*- coding: utf-8 -*-
"""
# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""
import os
import argparse
import numpy as np
import argparse
import paddle.fluid as fluid
from paddle.fluid.core import PaddleTensor
from paddle.fluid.core import AnalysisConfig
from paddle.fluid.core import create_paddle_predictor
from dataset_generator import TDMDataset
from infer_network import TdmInferNet
from args import print_arguments, parse_args
import logging
logging.basicConfig(format="%(asctime)s - %(levelname)s - %(message)s")
logger = logging.getLogger("fluid")
logger.setLevel(logging.INFO)
def to_tensor(data):
"""
Convert data to paddle tensor
"""
flattened_data = np.concatenate(data, axis=0).astype("float32")
flattened_data = flattened_data.reshape([-1, 768])
return flattened_data
def data2tensor(data):
"""
Dataset prepare
"""
input_emb = to_tensor([x[0] for x in data])
return input_emb
def tdm_input(input_emb, first_layer_node, first_layer_mask):
"""
Create input of tdm pred
"""
input_emb = PaddleTensor(input_emb)
first_layer_node = PaddleTensor(first_layer_node)
first_layer_mask = PaddleTensor(first_layer_mask)
return [input_emb, first_layer_node, first_layer_mask]
def main():
"""Predictor main"""
args = parse_args()
config = AnalysisConfig(args.model_files_path)
config.disable_gpu()
config.enable_profile()
# config.enable_mkldnn()
config.set_cpu_math_library_num_threads(args.cpu_num)
predictor = create_paddle_predictor(config)
tdm_model = TdmInferNet(args)
first_layer_node = tdm_model.first_layer_node
first_layer_nums = len(first_layer_node)
first_layer_node = np.array(first_layer_node)
first_layer_node = first_layer_node.reshape((1, -1)).astype('int64')
first_layer_node = first_layer_node.repeat(args.batch_size, axis=0)
first_layer_mask = (
np.zeros((args.batch_size, first_layer_nums))).astype('int64')
file_list = [
str(args.test_files_path) + "/%s" % x
for x in os.listdir(args.test_files_path)
]
test_reader = TDMDataset().infer_reader(file_list, args.batch_size)
for batch_id, data in enumerate(test_reader()):
input_emb = data2tensor(data)
inputs = tdm_input(input_emb, first_layer_node, first_layer_mask)
outputs = predictor.run(inputs)
output = outputs[0]
output_data = output.as_ndarray()
logger.info("TEST --> batch: {} infer_item {}".format(
batch_id, output_data))
if __name__ == "__main__":
main()
DIRS=`pwd`
data_path="${DIRS}/data"
train_files_path="${data_path}/train"
test_files_path="${data_path}/test"
model_files_path="${DIRS}/model"
thirdparty_path="${DIRS}/thirdparty"
tree_travel_init_path="${thirdparty_path}/travel_list.txt"
tree_layer_init_path="${thirdparty_path}/layer_list.txt"
tree_info_init_path="${thirdparty_path}/tree_info.txt"
export GLOG_v=0
function main() {
cmd="python local_infer.py \
--is_local=1 \
--cpu_num=1 \
--batch_size=1 \
--topK=1 \
--is_test=1 \
--save_init_model=1 \
--train_files_path=${train_files_path} \
--test_files_path=${test_files_path} \
--model_files_path=${model_files_path} \
--tree_travel_init_path=${tree_travel_init_path} \
--tree_info_init_path=${tree_info_init_path} \
--tree_layer_init_path=${tree_layer_init_path} "
${cmd}
}
main "$@"
DIRS=`pwd`
data_path="${DIRS}/data"
train_files_path="${data_path}/train"
test_files_path="${data_path}/test"
model_files_path="${DIRS}/model"
thirdparty_path="${DIRS}/thirdparty"
tree_travel_init_path="${thirdparty_path}/travel_list.txt"
tree_layer_init_path="${thirdparty_path}/layer_list.txt"
tree_info_init_path="${thirdparty_path}/tree_info.txt"
export GLOG_v=0
function main() {
cmd="python predict.py \
--is_local=1 \
--cpu_num=1 \
--batch_size=1 \
--topK=1 \
--is_test=1 \
--save_init_model=1 \
--train_files_path=${train_files_path} \
--test_files_path=${test_files_path} \
--model_files_path=${model_files_path} \
--tree_travel_init_path=${tree_travel_init_path} \
--tree_info_init_path=${tree_info_init_path} \
--tree_layer_init_path=${tree_layer_init_path} "
${cmd}
}
main "$@"
DIRS=`pwd`
data_path="${DIRS}/data"
train_files_path="${data_path}/train"
test_files_path="${data_path}/test"
model_files_path="${DIRS}/model"
thirdparty_path="${DIRS}/thirdparty"
tree_travel_init_path="${thirdparty_path}/travel_list.txt"
tree_layer_init_path="${thirdparty_path}/layer_list.txt"
tree_info_init_path="${thirdparty_path}/tree_info.txt"
export GLOG_v=0
function main() {
cmd="python local_train.py \
--is_local=1 \
--save_init_model=1 \
--load_model=0 \
--cpu_num=1 \
--random_seed=0 \
--epoch_num=1 \
--batch_size=32 \
--learning_rate=3e-4 \
--train_files_path=${train_files_path} \
--model_files_path=${model_files_path} \
--tree_travel_init_path=${tree_travel_init_path} \
--tree_info_init_path=${tree_info_init_path} \
--tree_layer_init_path=${tree_layer_init_path} "
${cmd}
}
main "$@"
1,2
3,4,5,6
7,8,9,10,11,12,13
14,15,16,17,18,19,20,21,22,23,24,25
\ No newline at end of file
1,3,7,14
1,3,7,15
1,3,8,16
1,3,8,17
1,4,9,18
1,4,9,19
1,4,10,20
1,4,10,21
2,5,11,22
2,5,11,23
2,5,12,24
2,5,12,25
2,6,13,0
\ No newline at end of file
0.066862817354438886,0.662159427076022045,0.485388456974321425,0.259508773297757900,0.951338043278942447,0.881074810689340238,0.879920076292456277,0.272461632053251579,0.905352160427319586,0.032725612985185837,0.223065877615108321,0.141446725720078104,0.497196084290162155,0.437056670929443225,0.777491712353053255,0.657239532914962510,0.690267768470753218,0.810182162396009375,0.241971236943241408,0.118816314037159532,0.926223752898799879,0.182245541885405316,0.592818381754180668,0.319031254016515886,0.913540357984657381,0.983295682441409413,0.602134018730518528,0.008427208426995625,0.815157736930177568,0.140347409896064534,0.045356425591712934,0.817370954818707807,0.926087871680855157,0.690436821288133773,0.173241296272448664,0.084705637652155996,0.118494684476894596,0.867435392249950588,0.394940356219416033,0.304270353853047126,0.892722037324242157,0.879367803804256054,0.372671369234495287,0.087735048033988350,0.621037485986900228,0.855639217376506278,0.668034459254271518,0.608365667023192835,0.686527061631161395,0.439710995433306717,0.012455230806384443,0.547082147635512550,0.476295737769924066,0.989571373273322785,0.983526782696075852,0.701891521139267671,0.020837772909243157,0.921515573965264845,0.631547817991386595,0.374326794603102808,0.076712434319937906,0.941649905697579670,0.925155133666530460,0.882521246836730056
0.345577258765122353,0.877229796526889372,0.717928399758580471,0.302981313042969713,0.594687764257897045,0.561061816809162672,0.243612670933163522,0.620814746400611406,0.477643434630299013,0.826156980096989568,0.711005071865615013,0.063224226583705412,0.236013256209724687,0.827772891049618265,0.411395974773639650,0.749485703910611423,0.672450647325583128,0.978870011853576916,0.364683458424030715,0.389744788741317016,0.732876418435530086,0.345253342627925397,0.288880615786639705,0.813643693451333028,0.441080549296751778,0.028793884717654983,0.544507059695665374,0.734535838961849596,0.017629357646139820,0.810760754677100959,0.273730529835676362,0.333606777574614211,0.999462274188321009,0.508617039186222253,0.928719197190239321,0.370123234882778429,0.313406506347690184,0.448382398085300116,0.196602759099388069,0.886374328474504591,0.780162239838559368,0.764092135368378833,0.188974654321049318,0.562668459981972791,0.031198834397534680,0.965245915835803547,0.251349320117493336,0.382984238374946884,0.700465311283865133,0.530527833059775245,0.755399200691203476,0.912750286542720835,0.707430143097484421,0.341283357396061082,0.228746443438524460,0.888606924314220836,0.370771698899348134,0.973780537634125087,0.271843345184222707,0.483114064223188810,0.148150422815700344,0.915446063380166541,0.596771798914486951,0.613269173343689911
0.911535134363091304,0.373825501918642500,0.116348050102444200,0.303759527488527747,0.882758036104576593,0.388017904437362504,0.692710503091332974,0.504993716335024545,0.180130710378656134,0.150755594303931817,0.172082937471439434,0.870110626311152768,0.523380298652056042,0.003743589567334560,0.081560143350133951,0.089930732938426128,0.420028756972368633,0.584661794933476586,0.534715183586159104,0.216664770438582011,0.990326200919363631,0.521315596736107612,0.009723883343670248,0.829601107914056946,0.395515142556269517,0.543135800036461669,0.604393643943901382,0.832156356081591553,0.656037992815230564,0.083309174546001064,0.724781286657038892,0.749825158393186753,0.972804778019054961,0.870686208661855754,0.198770726283120092,0.497977822593079766,0.909606107939023412,0.717730507799002826,0.363301913997156833,0.911318568141842977,0.218898431486973077,0.132127520617487559,0.468055790774032476,0.527905769609648523,0.252048296887025569,0.709104170577281923,0.083548853261334322,0.139154952126528841,0.938170711420319270,0.882148807642812005,0.617374037561873923,0.522660311171235903,0.221792592808773836,0.750727478133103587,0.889505303815265602,0.503818150106364993,0.010986586787186114,0.852955714343548554,0.443390529918902709,0.458594021729090917,0.174071887264615643,0.998677099474056029,0.946216215222165480,0.905868620990590068
0.810897808847423129,0.131771205521705626,0.237830239418049483,0.346501193092142890,0.335758317318601063,0.332605381439273096,0.050669445310273731,0.009682441415418519,0.377829262847920067,0.781739168357823644,0.371770585871349590,0.391436440707986888,0.350703790588730802,0.507257345552443506,0.521909772251417992,0.202589633129617641,0.633889292341845212,0.914674288662712831,0.446444990110811735,0.231892163987024946,0.390729749811205229,0.638940487009203362,0.307000702262475667,0.793756417858874297,0.808910210344114255,0.065781930011032164,0.405848785820160929,0.635691977090858451,0.998406117029755125,0.450618565301544205,0.162698960617931099,0.058386253344071437,0.056224905146980420,0.712480404885470375,0.834193481840528217,0.892678736311790511,0.182345345489314026,0.304925892029045520,0.220851273001472337,0.901387684980767490,0.485672793373565170,0.598309370886233816,0.414740522806805845,0.939354936890093417,0.057440091100715684,0.038020851723686744,0.362079986361778849,0.610269074598616235,0.447118349245317903,0.708150189157312315,0.346928812384394103,0.398090212433176438,0.147101617042423416,0.770623260198846194,0.818979758446137018,0.843404166180214632,0.947868869843220940,0.844897456057730145,0.901574558131523762,0.111287899640468146,0.925645765960219413,0.682280925492451562,0.664509201420780848,0.425519241320941100
0.143056661381736450,0.924744468830980937,0.099010778868539151,0.982244253863499339,0.753426592527067451,0.464788411418939118,0.793844225022203087,0.596286083678301049,0.883936996709936307,0.096878893887823891,0.253021930379559556,0.827855503694926331,0.036425778224826955,0.070716332380268643,0.189702575450597655,0.411506738408121797,0.696672480690276208,0.428124412229538232,0.032487850731042767,0.455612181528755600,0.127350700907214009,0.217211367155625945,0.785849706250162816,0.191437586071326216,0.198305821799361404,0.385179571394857256,0.123326580602691971,0.603806475075755689,0.521019281561134306,0.607194744625608296,0.627851533237577697,0.621837793745971590,0.332840781981647238,0.963331545890962149,0.564309071101012805,0.284273339362775102,0.074311947445168447,0.884404844170478710,0.486101000033157926,0.158582322944567533,0.703107821362414454,0.276363109546212127,0.270649400283511588,0.919007007190478120,0.780635515095823518,0.872149051716257229,0.887686801716923823,0.819864265396755720,0.417883087446291102,0.654239515525116944,0.438335119546103491,0.571493984340797123,0.018446484081762970,0.810577176067021954,0.560753719638845571,0.766394136989100971,0.202807096475271509,0.896223079929754585,0.847772695359977901,0.568835222622136483,0.889375985766133970,0.735824538503594416,0.341819812874467832,0.642624631463936336
0.577157845691172788,0.828933414652629152,0.027502346689907808,0.419852628092088120,0.993894360987334302,0.902778014265372630,0.282459270638076632,0.997570599713328399,0.287881892651791427,0.994027605534401726,0.545367464932824286,0.436013407422824129,0.184407895898404228,0.658312365820011292,0.921839040736514792,0.760462635236208051,0.611877475299274831,0.246804895295028914,0.204223546624872188,0.083460581177161042,0.787371866778311391,0.932302458011924351,0.085018562423375243,0.628080478854846525,0.808213927253973896,0.660208668150440103,0.869966673185430750,0.159071938385980105,0.783755885776964867,0.928675712781239060,0.386406348760819363,0.833425347275981498,0.076929225130909273,0.600969652969705059,0.830687135174308922,0.619371611028558755,0.920644628443955559,0.153400348698668476,0.295958812904760116,0.167167896779471969,0.700662484429572130,0.293912246925682075,0.788591843953546534,0.095660929010338069,0.987181132674130102,0.576565210560339381,0.851524650335905298,0.832571876634637276,0.166204160217874541,0.425007855796492362,0.356786846055100471,0.661612903332995272,0.573826172265294532,0.208995445670775770,0.288514113068410682,0.364435785817876612,0.979505138976202061,0.588831909551283617,0.328729780215841760,0.616598477798926736,0.673228742458317875,0.070482970093071806,0.029072852011658434,0.768678646611833827
0.779506564324403572,0.411466493999583238,0.830972056144584470,0.987414317959247390,0.698776079840246034,0.263321044734885268,0.698231125875257486,0.097491906773529924,0.382010658672458536,0.840398713197281100,0.047280519426044165,0.349886108419378061,0.972871796095446273,0.253525344415571063,0.007327368884954222,0.296227081119251445,0.857373396501362461,0.846866884600406933,0.029538819834755703,0.580953328566478966,0.714153162587042867,0.721137132238727663,0.706088691906143651,0.677026093036577459,0.722757576011444747,0.070624598427441065,0.785188904104573981,0.823116655627343929,0.447787813196150797,0.017001705194506611,0.314235658878957436,0.540551010937815657,0.435250963807478741,0.783866465187527561,0.608286993014499400,0.191442203692884338,0.452848677194618521,0.764424325407330296,0.629803287451410676,0.557773680456894572,0.002385172486053411,0.068780978424405115,0.898035239392711571,0.531512021076104513,0.474169454185278005,0.285747077798127247,0.903133752129534950,0.320468180727926377,0.032358173691125258,0.193002435997274735,0.940877350028677339,0.364526407212363401,0.903714114219145603,0.072260344351131711,0.628769381355620882,0.891525885127430806,0.321698566457565782,0.482729425025543057,0.412035430232002398,0.626993761992595489,0.510305345847658742,0.316642174758565487,0.254562424402309695,0.113074201798450513
0.395804717016102536,0.464478801665511809,0.822711457260248302,0.248041560006919126,0.135912015667068231,0.901125930161104649,0.754519669358101108,0.408263283576863478,0.514934332779710235,0.871132551266498800,0.700386812995041907,0.545259717184035542,0.915943208642615581,0.287647559740433323,0.005420602356441928,0.330861670326034085,0.744496218624230321,0.563210698538029519,0.923415211785433510,0.001292200646392905,0.606555337173796505,0.286036466055885175,0.640930722971230882,0.296449322131196902,0.198557681801761587,0.119492739152346594,0.597748647747410433,0.179959468767719954,0.641428990461409554,0.306017510675240856,0.737111219820667851,0.652837645424409030,0.147309570361976672,0.328208326185539856,0.381930370451407319,0.349046802996839656,0.575539652448980754,0.015670101277127535,0.517837921984391047,0.560615072427049443,0.639001348056042140,0.843686534384921361,0.960519280208524062,0.271067662327163394,0.877444042633766408,0.600468183980545800,0.147133469679775142,0.682571897702187957,0.908319307464314885,0.116917397060836592,0.031576578236724995,0.693274930509843457,0.772241119706739698,0.738751081006078669,0.054007663175448140,0.218071744183615635,0.685148884255844193,0.501181323274478396,0.410693720076466096,0.407581156469670303,0.619615952656576652,0.362072288869940029,0.899695131567532336,0.937728351437952301
0.320754328682905432,0.782276907667197152,0.537255814682924826,0.927955775487068979,0.453556492785135656,0.263065238208364360,0.701486573080488118,0.945654177325303769,0.775998810514209048,0.281022494399665757,0.879593738950917303,0.077357447603807472,0.554010747155418315,0.824768785292364415,0.228237670496027945,0.592890095973518494,0.865228188172930568,0.729381977128441994,0.671318614914133582,0.782894646994530374,0.853079039064585598,0.813935309078047231,0.560777476981903056,0.323061972907712658,0.998858770105362170,0.437630075755826020,0.032892167278531947,0.179115600276386067,0.578991069179572326,0.477573108908741828,0.273475621124801616,0.684417158241960144,0.519033702224846794,0.146646729594976377,0.546556489363605680,0.119234762920517934,0.462158723682405514,0.225445438150018718,0.516030138717197495,0.081414026446199883,0.312869094657891589,0.509500413829331422,0.656819385883673945,0.026767755022303774,0.094107669377866410,0.225358800475201626,0.744971932601738662,0.656073149144252188,0.702906634783481143,0.803825051500974164,0.991494132076412682,0.516824362764990219,0.625947952143972586,0.043827516519122312,0.769203877541250192,0.839574596352707814,0.205857832034988641,0.627497716649061621,0.452239031295263105,0.969368018948651544,0.372792538559206577,0.029508659728869735,0.533537883731745377,0.038174402300855670
0.858226915474013197,0.482308505055588754,0.088814642297101121,0.475401305371312644,0.030810401640696816,0.803436819066454033,0.592049282355970763,0.396439357391095148,0.338762155803684850,0.079638417296968411,0.465294838885652706,0.175234108785150777,0.850566811763981634,0.045103921263720648,0.252108649597109102,0.916899283409421617,0.208700031622677362,0.434559323502001105,0.280481228963761264,0.089216392734682848,0.008875290144490622,0.278913829221325904,0.901583291892646077,0.658256131841488346,0.022120695555271408,0.624594557376245030,0.445474156811815791,0.959931150768831509,0.234868874452122345,0.166097682043589212,0.761595669127893227,0.191438031141469067,0.606341071574418855,0.519026785795279944,0.553422656214480058,0.297927704380280267,0.631076260207801054,0.356075107112732936,0.541561024034529659,0.685828029949040574,0.004590023329274273,0.590080257459860258,0.175022155784736455,0.884440409054735976,0.870862711747858342,0.391332416855165621,0.067385190635594561,0.451147133196617367,0.633227088846519237,0.812225453674211950,0.534583651273397908,0.298939658435072975,0.921311285601651320,0.725260894839156900,0.557720968429970321,0.595027774699091738,0.289445963100385950,0.951069867143780501,0.403259790726971046,0.698317569995490883,0.866113923461463320,0.938767216581850472,0.723062568950513462,0.239410154077434267
0.052249731615021333,0.526915220541952278,0.246727141191572685,0.168333096180528607,0.962922955157460847,0.541767293200624445,0.819415864315798714,0.145852785775639870,0.655320132643557818,0.311632572835307098,0.051910193172595043,0.414121217021876653,0.793837301225488345,0.941524039287452652,0.041302271840846672,0.816159322790868891,0.880569740777331966,0.834200162427688574,0.755924928227268866,0.368886013072751484,0.210659210727951129,0.929160124804304655,0.350374381386991618,0.734234752993356277,0.819569902211180534,0.239904905616537878,0.733515723165517941,0.212380512608122296,0.638269130800316553,0.691826161399656359,0.951714321468591917,0.242240565623035198,0.580501048641979378,0.193561581922342074,0.829145860645888466,0.174722107722049769,0.790078518290015963,0.298753522106608216,0.797440872364697517,0.792803464867471996,0.931029148893174674,0.600775720940378677,0.526678093257694879,0.168663785508061825,0.688120619972890535,0.313245019517028767,0.113929349140353797,0.487728375868096253,0.499981810858847187,0.207846393368722238,0.076630267125310292,0.319857438696266705,0.357717485400855684,0.418270552177128829,0.861933887831907275,0.143634054425544111,0.627087538136160472,0.907543727317867144,0.239418875122909713,0.817928329921475128,0.015306539930586172,0.364088989613011837,0.257173402368536252,0.075792324691292268
0.535847583527535920,0.811454763506408883,0.976144195696258654,0.274070434180157863,0.901866717021435282,0.158151660428042296,0.282071485334725702,0.732359653093513696,0.524930308479765628,0.750795764453834558,0.875626299479015713,0.894852158004612042,0.839349162326845533,0.018572743053000051,0.498012369978982239,0.050040402826196151,0.604357963142775012,0.705941585434585739,0.451796487743706066,0.304332561506845956,0.581245419566104315,0.123601526982100807,0.645168300371681491,0.688864301723007388,0.931010428860005401,0.062085463460533008,0.286667676986984588,0.353083744634247521,0.926435768706850515,0.204994133454205030,0.786209116946253950,0.234446124486222818,0.180499619370362185,0.174037312681435630,0.092046415815053795,0.157500477877728695,0.508759404727155196,0.504415325776963130,0.654864327666456525,0.481654710495642013,0.770240544652849857,0.862452987000502547,0.131913873650312041,0.127207046505563248,0.329311003025129612,0.703363373006649306,0.292857748683652108,0.229145497461428094,0.246546379752288214,0.017402408552720572,0.990702786748766773,0.492262321229565258,0.519005264556617218,0.190677216392783011,0.162169146288412724,0.323333948063762255,0.553000201449857398,0.825198549072172161,0.101140889589117489,0.830150495946124001,0.754599192270769770,0.377198139581369496,0.318465069173157200,0.779423841008860752
0.441287922406988220,0.150558258456762073,0.172425800626564318,0.702758695566949032,0.792388297687775744,0.682238497254354148,0.953993139881162189,0.103279665640640839,0.318541070028815598,0.855532093230002788,0.886226622978287137,0.329249583046326122,0.047254047243648345,0.071327051261211860,0.717378474139017452,0.328999487795583634,0.383996301051764299,0.236404231569344314,0.480743675461773878,0.263704758531745131,0.676188736196556950,0.592523397312614497,0.447584210147473738,0.977945590556334898,0.230033978028081010,0.270902195827169456,0.690616032737299546,0.098205791172790380,0.145007373959814334,0.102912034396323793,0.826251599976136730,0.482272510048575853,0.372716298439989324,0.314942327136991440,0.962885551484045976,0.802446183967067572,0.809514731233910712,0.282091713566661406,0.621395191109950562,0.292250983563132061,0.471694549803990837,0.927570628717377721,0.799581763770703446,0.331583248237636630,0.200973190617699249,0.650443279133596786,0.537679430473702702,0.801087084788101200,0.152398821042426857,0.215246912774274879,0.876505391883448004,0.928496363940270242,0.851938152807324323,0.629570173690423229,0.859042906256562766,0.514595823275464714,0.862061461481545610,0.276413313214311840,0.368554306406047805,0.419201062749698927,0.186529383516491287,0.052562218878208444,0.243131446030800502,0.860280232301026682
0.757961652140244246,0.518649766801836942,0.682856376039778223,0.173038148892043830,0.210203644318689653,0.458463438280840796,0.966258412950832923,0.711063666405932437,0.219405861678510616,0.170751903793087689,0.568128460561426407,0.065883600093886607,0.922035830803272893,0.517140168571332270,0.811838391575578466,0.075394960852403714,0.743811152634984540,0.291272987466665634,0.510856046262817887,0.680568155758771720,0.036655942065793035,0.754151072294592884,0.163876844190990245,0.626458447992144007,0.468656665168522779,0.784088190605420787,0.945775380328937154,0.565044494999663138,0.537627504981603721,0.924826351029993554,0.927219637514802963,0.215283368610749370,0.923257295241780351,0.176647978868593736,0.600414341445106858,0.514264019094774816,0.797201050498307140,0.331350808169343591,0.845971118700426294,0.457332960838822689,0.856239356562458642,0.299807618481763072,0.946146765211749230,0.379203388578614797,0.349881098337278429,0.822777152616821050,0.202738771320537414,0.302326487198293692,0.045640725767348789,0.026472273471385588,0.086245876031245561,0.578185311579874073,0.163238852930596146,0.265192664676077272,0.031318745669386083,0.142557573059384546,0.533987334571032424,0.553620423234725934,0.593357347184021999,0.325323867800034972,0.278289015966220465,0.921226187583807810,0.222578145157771967,0.251948953218350979
0.106798004357137044,0.639683141346152673,0.684500132685183393,0.190671114337180980,0.049046181361627306,0.100468819337376170,0.721877323060419074,0.581102365169773316,0.349147820250205299,0.075075365196215049,0.688147767617795725,0.320525217156954700,0.050457082636450434,0.892724238108697721,0.437164273346674404,0.431993413529445425,0.633054432977891768,0.161652749677364871,0.719542835131895986,0.333173264650382772,0.485175827646988744,0.973417746771913395,0.894957328416656872,0.718254874089210515,0.507999584940539317,0.522295544231238251,0.932297493939585165,0.335682261808903482,0.500534294407378511,0.768718027938125603,0.189118435382840677,0.030540414822501583,0.748188600448056795,0.649938052603237448,0.213977445130416166,0.672495473420083534,0.147154598284993443,0.279599303526446463,0.611139050344226220,0.021283843821356618,0.614413952581496114,0.910897129740454115,0.276929799156109158,0.674397274124661106,0.834076832350517106,0.879409214233102365,0.033049934619860832,0.045006522365849122,0.748350744152268210,0.084215684949003888,0.314006720883830526,0.981937457908677702,0.166799653095318634,0.949223432481700047,0.347470321095319057,0.448366609348036405,0.246538190627679898,0.371426606952390381,0.368116847693569560,0.708845409465159726,0.777964763179149643,0.490034464659613311,0.477704784726163290,0.149734961496187036
0.280014466908003357,0.984313903720462013,0.407781216331330909,0.962899115415493889,0.474517134100620575,0.758664966158874909,0.831996912267952582,0.912813101950805450,0.744336643491005923,0.175279337864788776,0.468319267744607748,0.233292084983676373,0.255012322634028399,0.680390381824715784,0.495329991004765047,0.245442086225655332,0.667759731402648549,0.351944946189644448,0.858088230007715391,0.227684009131998266,0.317489361171145346,0.014395493698628026,0.924129038566054217,0.741046073961864837,0.071129571736214148,0.254256790742170224,0.119005193236055962,0.083293485284383295,0.964356523099398455,0.802812512371275599,0.315670714346182213,0.600588217844742367,0.109142460272128039,0.264777703114014495,0.335249672934286980,0.361948769413009130,0.525390282336034242,0.474243700288772163,0.059839820990447157,0.897218545304481530,0.813851729445552063,0.674805032494807278,0.185879486614289213,0.831839440249882989,0.962782192816128979,0.801902381232027284,0.819511497658619525,0.890797880202053305,0.035362553949924713,0.912450790428217751,0.908961484341789472,0.646969268483161053,0.577114396927008277,0.300396500069468164,0.445456018036696433,0.471314955590005802,0.321502125926321214,0.594965521602523140,0.661479122977187139,0.623954361046607175,0.343952327609994279,0.877566301978406460,0.460852145273779601,0.216698005346193434
0.237135254564239006,0.876644988252107460,0.591058559856681320,0.655982987802574580,0.761511344171719839,0.535461267502195026,0.848578313197890233,0.786349857237349514,0.027971583898122043,0.558045382969194370,0.173703199512203921,0.058494124436273109,0.987107990322607098,0.620981076869605242,0.052662381724787433,0.366054724794332986,0.293389583863155612,0.994178081253877299,0.559608686935306077,0.622689438066537981,0.862457938302441440,0.510521916019868183,0.842989279880122289,0.252120259669913027,0.425267197575429523,0.680135684670820861,0.107600267912617009,0.630795121841503659,0.976910895794704914,0.451541179453993413,0.809465594498116947,0.546519278251961782,0.620267982973123244,0.420593526222212688,0.522997348073360513,0.682185119215394042,0.137235756279971310,0.483394873850252482,0.014671103180748268,0.034424737339246780,0.697467205027781034,0.588577028560824611,0.360352166917265127,0.084315128207533507,0.392190957956252251,0.162322453419473600,0.969257704873796033,0.272135637742249803,0.799840834327943839,0.349388207712968635,0.593229109066547133,0.408497090221142112,0.600802092482984773,0.742175071138972520,0.356975482995451121,0.863354681626263942,0.656897249580094766,0.510635410055616079,0.764965196034955275,0.251163403020852605,0.107706308121579442,0.172048589886262704,0.397979479664177571,0.419838110294924238
0.021894884400075032,0.605120308355811765,0.543493212049505958,0.300746338633410715,0.063537046142055131,0.447687745512430957,0.981241176143967553,0.286182423853178047,0.826091854066707487,0.122511446367251531,0.094233147918504234,0.264511971292449077,0.208929172173886624,0.515769486469563665,0.705254096484554616,0.282775956906934689,0.439668700258576073,0.339637323343039532,0.718660525815957851,0.046916178509284201,0.815105295883059688,0.898751251563924769,0.622817946632510222,0.465952216797813068,0.082638119520931363,0.473575088605911576,0.954038652776592833,0.730479863640439042,0.777500936378640928,0.564352991435474238,0.341129290268823882,0.091970103284856664,0.618413946308956297,0.948873407299289262,0.803695753063716989,0.885492109028088947,0.167973015659600877,0.222455238843972003,0.654732650727193222,0.834168975303963722,0.977832296745441143,0.716838529451519935,0.829578831273905082,0.275349347599077254,0.481083825840491919,0.596202576790883065,0.192307274029162367,0.953885265640409874,0.538890950128797175,0.619360094308816223,0.124540415956092443,0.902173275563381227,0.874536820680329896,0.474836749078097142,0.635683525058014065,0.428964415672377530,0.390816549767246557,0.237725100137179068,0.398252047013836763,0.258038608897201316,0.475681350515046453,0.223950037248328293,0.414867300699053532,0.384858965945627518
0.422881944321301551,0.423060307074333730,0.728057481240290572,0.720708756836345055,0.223108418491011484,0.813596025639644727,0.438295087160047725,0.495154650477537484,0.931595320774354696,0.317993169783574614,0.856250771639704755,0.745225096042697710,0.653313623273402144,0.661070529214469627,0.677692158757763563,0.679612519200905707,0.982919028161887809,0.871442452546663082,0.566676760503832977,0.861552206672541288,0.420567660142202482,0.780283487869578130,0.322622157772272211,0.597902233466449107,0.527052381765723332,0.874235978797743840,0.443026434800764535,0.590459344726936619,0.838656774465495802,0.680341010732798290,0.788074347605501102,0.299517943869428427,0.431914430209118683,0.040930654597583160,0.412784018470743974,0.335824472934062923,0.665853504834067245,0.526153692872153966,0.615089611475215348,0.029578451308131970,0.258496768879313388,0.579320142683024009,0.938119892209326567,0.567711099036098621,0.622472521291936420,0.663395587033468903,0.317030879496635776,0.741111693263683979,0.877097384201822261,0.871180326104792568,0.489855447765790708,0.258363766073114731,0.363099841803655621,0.156469661980636054,0.436365328403176100,0.929004718774385507,0.926602035429223037,0.395320233129833110,0.863897498435561739,0.570577119428453239,0.542174507339239775,0.671699159460030448,0.204282677049821393,0.121101316852931684
0.705239255969614787,0.195010261166261412,0.349795874711998356,0.359801093041750120,0.817492926303241219,0.333037614679867700,0.289012115232647138,0.561741613595386546,0.865888900261003513,0.291553629007510695,0.645055200834863895,0.923801561885377653,0.337038147455930193,0.034949382707170740,0.090447776254190537,0.565917227315582805,0.339804838631269535,0.721456085547551140,0.293905133810647201,0.385323479605150232,0.081203188723922293,0.969578051906792138,0.589360638816890603,0.005739160624661288,0.824683063772901459,0.274863142160563845,0.298777207742341622,0.818072795946728437,0.679973261773098026,0.764887626977214352,0.448986651260051439,0.349942479595461209,0.318943204289319993,0.969307979600478098,0.809138911585059017,0.438235964327512439,0.112449828463499713,0.207585170336436087,0.865206563003313778,0.289741915203260203,0.495706182611260426,0.698027299746037500,0.036398335876407950,0.360622590470625282,0.155557991430657627,0.761686166623834815,0.333870622484433444,0.662384786105615686,0.187588843811308470,0.633560275074765866,0.118217421314325666,0.748071884768486961,0.444206311141966403,0.585716961845923256,0.381447507916535367,0.106695595881369343,0.402720462758515918,0.194486701348803859,0.201050038366821004,0.349574487183027305,0.115403898616811218,0.847228782245173728,0.198684737356163765,0.598755674081171030
0.148843995260370843,0.286919130416598223,0.031969010236610806,0.251597127411561150,0.876096788710457264,0.824381505214181853,0.289020174755848847,0.875196399181959017,0.953116433090334891,0.315418954794677298,0.369228293264340368,0.520977180934181772,0.624593499039519440,0.105894131224463672,0.278402744884006736,0.490502239648446303,0.187273620585081901,0.810713771683414297,0.828932549289835729,0.802753052028839731,0.442574707378147969,0.047564657500412832,0.481224931035828418,0.931542781279877552,0.028405514535110088,0.152181959019324298,0.489567458528484045,0.920255028105220307,0.293038631356397627,0.381347148027264438,0.877756313166227820,0.982051160826277969,0.433943794566325702,0.700211384706576179,0.577246314591990162,0.314857172398993135,0.064509597828838916,0.846258873437097270,0.566834891827881271,0.593238458163586335,0.972056981317485413,0.636556962646490088,0.022223432332536874,0.162142034184432959,0.326806972122581030,0.931511819167421762,0.012642779891244849,0.355037442714977280,0.755088536863040782,0.363477151928707221,0.049465691229161890,0.295133245638080299,0.957236545008567807,0.336283248232112530,0.059476250803775610,0.858731700239538709,0.850677881589201434,0.727762308517777901,0.898304758887382260,0.591897000374209337,0.969999079668830477,0.864528861441755447,0.634093155329752522,0.358207183362433734
0.316625785008028182,0.161099436903649029,0.826390228506657221,0.703615785649248426,0.641660572690825548,0.862321911202617697,0.329084495397249710,0.740071211713532184,0.267706778587402217,0.978123736073377659,0.195984588630368939,0.442359628006630756,0.287120962486282161,0.956437062706475327,0.722520727742473001,0.270244768514988465,0.896203931702792778,0.160386313380020296,0.364686785789522960,0.115024271301483960,0.590743797849688335,0.480769884778190937,0.365979656684689347,0.764940936997722587,0.172921929983137379,0.311814927206095382,0.765435941120949148,0.602025429802197420,0.492704760851193635,0.054285604733625759,0.158443475101617159,0.641256225111499600,0.368104260229686564,0.460408585753665500,0.896371371542272199,0.735938045285998599,0.573314928544430003,0.113612384812014411,0.962362076303348690,0.507469468679462743,0.101874543305952470,0.406239653079069396,0.890978309025492576,0.863766837344097427,0.162129341169270802,0.125233597407879538,0.490275338151562434,0.547692679431455165,0.222220553560592338,0.124135062905450622,0.393051751960517115,0.086864800491071814,0.208381370870761917,0.405905885672288136,0.762620750869144048,0.502765766215529930,0.316983279498881387,0.525937796272504254,0.440484397134803141,0.175600910941447030,0.807829682885097711,0.532266465437109537,0.996945664307715695,0.697923130609829578
0.524039537472806072,0.277218801404085391,0.739822777175224378,0.276619405185660305,0.012287320627837439,0.826835623321154678,0.116983543610062579,0.971681085058843652,0.953867903535536188,0.906772807821330962,0.138437821958937723,0.991851427477804415,0.770200342971329444,0.477017681147698158,0.342028400761959839,0.873299430050057390,0.260923467955775701,0.616393495053838336,0.995993012686827606,0.189102267603674767,0.927454202470036626,0.478029160547222998,0.210576232938853858,0.769479266334958001,0.393187730056641649,0.615033902941269139,0.882997637648684663,0.756342974191502870,0.919213250487364353,0.413235007506379870,0.133757498091363281,0.697885232420880741,0.000797904315569919,0.805416683648698450,0.090958942564911660,0.014871591223068914,0.231510882635105331,0.478708771623811313,0.133335150404078506,0.294289609142527442,0.027964398553248726,0.910924935363837007,0.542829632512749960,0.579333853161490331,0.626462648244456410,0.048378584872270536,0.014705060185059682,0.107827482951133202,0.054952689582634773,0.507786420340973099,0.849597505378355211,0.352791802886979089,0.581923824936377287,0.835343988397004411,0.132732931325111325,0.925975251915952757,0.580518567597649415,0.943412015115086211,0.495719240548088691,0.962974808458607279,0.019316389355416463,0.413833937537072649,0.552153804190963493,0.945197838388636802
0.387832116576672825,0.488339649958115296,0.040541327203175714,0.411481091633974949,0.519986553572074461,0.894062631115210893,0.305454383492413828,0.302137680987164314,0.635344192584629375,0.803812473065670385,0.341754597202069466,0.708389526553495519,0.165013287189431312,0.590752166613121465,0.902283127255435580,0.260334822715045933,0.870562556737636273,0.855083876932913767,0.911928604352237548,0.186462551410013555,0.012190036314060015,0.706923516100105620,0.780304202345424192,0.706371738770993574,0.977054625106263397,0.953965909690899116,0.181818334198951659,0.122581589039286731,0.161465392364479654,0.978359488698414603,0.754552070210820935,0.012170563520279121,0.511062931723075375,0.329930227083761518,0.369649676350699563,0.770248596779769534,0.045295451690136490,0.543157398606953445,0.826556978005370646,0.847057320664505564,0.361271951464571472,0.702286815035901846,0.526535802178740520,0.358446839351446056,0.417321787906487773,0.276075050978745518,0.419998843400255173,0.059778641490569995,0.404762139483487049,0.871780948335275974,0.781060847968345517,0.576219264655058572,0.085790533170413075,0.935426229132391263,0.510081307028477093,0.980457730601632771,0.004187544101074803,0.681338786875520630,0.078637921620373197,0.072978370059981867,0.871070098430689832,0.389102362890127673,0.466677727273426268,0.660888984098442323
0.465044759140389230,0.982342011633318024,0.766037378813462899,0.124240335150867409,0.399849689836915489,0.828002978831198222,0.022683316857134539,0.329595750247789310,0.581431704335957145,0.240676765984750629,0.409412770484866351,0.370545204620929214,0.960781414636736830,0.289031699653369167,0.371153108133657761,0.796893630102288308,0.861523765283579102,0.413903205657019102,0.033681154435452942,0.637082410875920324,0.944282658042928547,0.598800896301919017,0.012660029542602591,0.823934700591840041,0.236267789557179864,0.141237267035538849,0.636144467007498715,0.240878295754902272,0.076669839480927426,0.369846912920693383,0.612574438829237344,0.297374919720726827,0.666748088580255249,0.594789356831930793,0.338339154273564202,0.639462538612285858,0.916559826887924367,0.398945409347401414,0.800319367539466642,0.943782836329543962,0.379184625454594304,0.193780725757459527,0.324106209975608905,0.289341128118970503,0.918906387341477782,0.612031032121969520,0.910454378841069167,0.017361480460416301,0.378922965229787190,0.174018854644909626,0.480143889155774661,0.622233313784732456,0.224189350689375178,0.041865544399169008,0.498083811720223646,0.698452316967770104,0.817262477803422760,0.463790794784969318,0.581564643204003140,0.763610113495889586,0.386578233241001712,0.535418980985766013,0.605007524407202624,0.216853523313080387
0.179713632820313829,0.459438250849338203,0.298373049796080703,0.331598361356457039,0.299964918123251434,0.302650994146577812,0.939157494185989039,0.673262610614220658,0.205579094379335192,0.731056704427864412,0.149521073876910271,0.251777290578456103,0.848334101154985420,0.519944419339452679,0.651467728123016565,0.854687547328092823,0.827284242199745057,0.949618444234987535,0.257851645640449378,0.103165523481840937,0.266210159578189609,0.139421711318430730,0.635974340401645799,0.369775044702357891,0.389998343130140590,0.695948144039862937,0.347807715695338637,0.110957708752319140,0.773678417389025430,0.492087948764634131,0.978718699490180533,0.825650984384555753,0.627494864367656668,0.911819381552085639,0.653669670510764078,0.983773972190642332,0.246688025662539667,0.430074819526551577,0.645563371745233261,0.543747033921542222,0.509911050850566649,0.086414835198767137,0.022869024314121855,0.734454901027177920,0.069482936832319542,0.034132335003654202,0.780446419723978879,0.716303461090551985,0.118242849444877396,0.350465210041292941,0.351154832003392370,0.000524983242492616,0.101077668507636553,0.577238696754070690,0.124856143698595212,0.982654187023298764,0.615850514661999027,0.792553881698135121,0.342542726314985724,0.017458039671528591,0.543436108871085510,0.101860808680114934,0.833370349402921207,0.344181813023561545
0,0,0,1,2
0,1,0,3,4
0,1,0,5,6
0,2,1,7,8
0,2,1,9,10
0,2,2,11,12
0,2,2,13,0
0,3,3,14,15
0,3,3,16,17
0,3,4,18,19
0,3,4,20,21
0,3,5,22,23
0,3,5,24,25
12,3,6,0,0
0,4,7,0,0
1,4,7,0,0
2,4,8,0,0
3,4,8,0,0
4,4,9,0,0
5,4,9,0,0
6,4,10,0,0
7,4,10,0,0
8,4,11,0,0
9,4,11,0,0
10,4,12,0,0
11,4,12,0,0
\ No newline at end of file
# -*- coding=utf-8 -*-
"""
# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""
import math
import argparse
import numpy as np
import logging
import paddle.fluid as fluid
from utils import tdm_sampler_prepare, tdm_child_prepare, tdm_emb_prepare, trace_var
logging.basicConfig(format="%(asctime)s - %(levelname)s - %(message)s")
logger = logging.getLogger("fluid")
logger.setLevel(logging.INFO)
class TdmTrainNet(object):
"""
TDM-Demo网络的主要流程部分
"""
def __init__(self, args):
self.input_embed_size = args.query_emb_size
self.node_emb_size = args.node_emb_size
self.label_nums = 2
self.node_nums = args.node_nums
self.max_layers = args.layer_size
self.neg_sampling_list = args.neg_sampling_list
self.output_positive = True
self.get_tree_info(args)
# 设置是否需要进行数值的debug
self.need_trace = args.need_trace
self.need_detail = args.need_detail
if not args.load_model:
# 每次模型训练仅需运行一次,灌入生成的明文,拿到树结构信息
# 将其保存为paddle的二进制init_model
# 下一次调试或训练即可load init_model,快速启动且内存占用更小
self.tdm_param_prepare_dict = tdm_sampler_prepare(args)
logger.info("--Layer node num list--: {}".format(
self.tdm_param_prepare_dict['layer_node_num_list']))
self.layer_node_num_list = self.tdm_param_prepare_dict['layer_node_num_list']
logger.info("--Leaf node num--: {}".format(
self.tdm_param_prepare_dict['leaf_node_num']))
self.leaf_node_num = self.tdm_param_prepare_dict['leaf_node_num']
self.tdm_param_prepare_dict['info_array'] = tdm_child_prepare(
args)
logger.info(
"--Tree Info array shape {}--".format(self.tdm_param_prepare_dict['info_array'].shape))
self.tdm_param_prepare_dict['emb_array'] = tdm_emb_prepare(args)
logger.info(
"--Tree Emb array shape {}--".format(self.tdm_param_prepare_dict['emb_array'].shape))
else:
self.layer_node_num_list = args.layer_node_num_list
self.leaf_node_num = args.leaf_node_num
self.input_trans_layer = InputTransNet(args)
self.layer_classifier = DnnLayerClassifierNet(args)
def get_tree_info(self, args):
"""
TDM_Tree_Info 虽然在训练过程中没有用到,但在预测网络中会使用。
如果希望保存的模型直接用来预测,不再有额外的生成tree_info参数的步骤,
则可以在训练组网中添加tree_info参数,训练保存模型时可以进行保存。
"""
fluid.default_startup_program().global_block().create_var(
name="TDM_Tree_Info", dtype=fluid.core.VarDesc.VarType.INT32, shape=[args.node_nums, 3 + args.child_nums],
persistable=True,
initializer=fluid.initializer.ConstantInitializer(0))
tdm_tree_info = fluid.default_main_program().global_block().create_var(
name="TDM_Tree_Info", dtype=fluid.core.VarDesc.VarType.INT32, shape=[args.node_nums, 3 + args.child_nums],
persistable=True)
def input_data(self):
"""
指定tdm训练网络的输入变量
"""
input_emb = fluid.data(
name="input_emb",
shape=[None, self.input_embed_size],
dtype="float32",
)
item_label = fluid.data(
name="item_label",
shape=[None, 1],
dtype="int64",
)
inputs = [input_emb] + [item_label]
return inputs
def tdm(self, inputs):
"""
tdm训练网络的主要流程部分
"""
input_emb = inputs[0]
item_label = inputs[1]
# trace_var用于在静态图的调试中打印参数信息细节:
# 将 need_trace设置为True,可以在日志中看到参数的前向信息(数值默认前20个)
# 将 need_detail设置为True,可以在日志中看到参数的前向全部数值
trace_var(input_emb, "[TDM][inputs]", "input_emb",
self.need_trace, self.need_detail)
trace_var(item_label, "[TDM][inputs]",
"item_label", self.need_trace, self.need_detail)
# 根据输入的item的正样本在给定的树上进行负采样
# sample_nodes 是采样的node_id的结果,包含正负样本
# sample_label 是采样的node_id对应的正负标签
# sample_mask 是为了保持tensor维度一致,padding部分的标签,若为0,则是padding的虚拟node_id
sample_nodes, sample_label, sample_mask = fluid.contrib.layers.tdm_sampler(
x=item_label,
neg_samples_num_list=self.neg_sampling_list,
layer_node_num_list=self.layer_node_num_list,
leaf_node_num=self.leaf_node_num,
tree_travel_attr=fluid.ParamAttr(name="TDM_Tree_Travel"),
tree_layer_attr=fluid.ParamAttr(name="TDM_Tree_Layer"),
output_positive=self.output_positive,
output_list=True,
seed=0,
tree_dtype='int64',
dtype='int64'
)
trace_var(sample_nodes, "[TDM][tdm_sample]",
"sample_nodes", self.need_trace, self.need_detail)
trace_var(sample_label, "[TDM][tdm_sample]",
"sample_label", self.need_trace, self.need_detail)
trace_var(sample_mask, "[TDM][tdm_sample]",
"sample_mask", self.need_trace, self.need_detail)
# 查表得到每个节点的Embedding
sample_nodes_emb = [
fluid.embedding(
input=sample_nodes[i],
is_sparse=True,
size=[self.node_nums, self.node_emb_size],
param_attr=fluid.ParamAttr(
name="TDM_Tree_Emb")
) for i in range(self.max_layers)
]
# 此处进行Reshape是为了之后层次化的分类器训练
sample_nodes_emb = [
fluid.layers.reshape(sample_nodes_emb[i],
[-1, self.neg_sampling_list[i] +
self.output_positive, self.node_emb_size]
) for i in range(self.max_layers)
]
trace_var(sample_nodes_emb, "[TDM][tdm_sample]",
"sample_nodes_emb", self.need_trace, self.need_detail)
# 对输入的input_emb进行转换,使其维度与node_emb维度一致
input_trans_emb = self.input_trans_layer.input_trans_layer(input_emb)
trace_var(input_trans_emb, "[TDM][input_trans]",
"input_trans_emb", self.need_trace, self.need_detail)
# 分类器的主体网络,分别训练不同层次的分类器
layer_classifier_res = self.layer_classifier.classifier_layer(
input_trans_emb, sample_nodes_emb)
trace_var(layer_classifier_res, "[TDM][classifier_layer]",
"layer_classifier_res", self.need_trace, self.need_detail)
# 最后的概率判别FC,将所有层次的node分类结果放到一起以相同的标准进行判别
# 考虑到树极大可能不平衡,有些item不在最后一层,所以需要这样的机制保证每个item都有机会被召回
tdm_fc = fluid.layers.fc(input=layer_classifier_res,
size=self.label_nums,
act=None,
num_flatten_dims=2,
param_attr=fluid.ParamAttr(
name="tdm.cls_fc.weight"),
bias_attr=fluid.ParamAttr(name="tdm.cls_fc.bias"))
trace_var(tdm_fc, "[TDM][cls_fc]", "tdm_fc",
self.need_trace, self.need_detail)
# 将loss打平,放到一起计算整体网络的loss
tdm_fc_re = fluid.layers.reshape(tdm_fc, [-1, 2])
# 若想对各个层次的loss辅以不同的权重,则在此处无需concat
# 支持各个层次分别计算loss,再乘相应的权重
sample_label = fluid.layers.concat(sample_label, axis=1)
sample_label.stop_gradient = True
labels_reshape = fluid.layers.reshape(sample_label, [-1, 1])
# 计算整体的loss并得到softmax的输出
cost, softmax_prob = fluid.layers.softmax_with_cross_entropy(
logits=tdm_fc_re, label=labels_reshape, return_softmax=True)
# 通过mask过滤掉虚拟节点的loss
sample_mask = fluid.layers.concat(sample_mask, axis=1)
sample_mask.stop_gradient = True
mask_reshape = fluid.layers.reshape(sample_mask, [-1, 1])
mask_index = fluid.layers.where(mask_reshape != 0)
mask_cost = fluid.layers.gather_nd(cost, mask_index)
# 计算该batch的均值loss,同时计算acc, 亦可在这里计算auc
avg_cost = fluid.layers.reduce_mean(mask_cost)
acc = fluid.layers.accuracy(input=softmax_prob, label=labels_reshape)
return avg_cost, acc
class InputTransNet(object):
"""
输入侧组网的主要部分
"""
def __init__(self, args):
self.node_emb_size = args.node_emb_size
self.max_layers = args.layer_size
self.is_test = args.is_test
def input_trans_layer(self, input_emb):
"""
输入侧训练组网
"""
# 将input映射到与node相同的维度
input_fc_out = fluid.layers.fc(
input=input_emb,
size=self.node_emb_size,
act=None,
param_attr=fluid.ParamAttr(name="trans.input_fc.weight"),
bias_attr=fluid.ParamAttr(name="trans.input_fc.bias"),
)
# 将input_emb映射到各个不同层次的向量表示空间
input_layer_fc_out = [
fluid.layers.fc(
input=input_fc_out,
size=self.node_emb_size,
act="tanh",
param_attr=fluid.ParamAttr(
name="trans.layer_fc.weight." + str(i)),
bias_attr=fluid.ParamAttr(name="trans.layer_fc.bias."+str(i)),
) for i in range(self.max_layers)
]
return input_layer_fc_out
def input_fc_infer(self, input_emb):
"""
输入侧预测组网第一部分,将input转换为node同维度
"""
# 组网与训练时保持一致
input_fc_out = fluid.layers.fc(
input=input_emb,
size=self.node_emb_size,
act=None,
param_attr=fluid.ParamAttr(name="trans.input_fc.weight"),
bias_attr=fluid.ParamAttr(name="trans.input_fc.bias"),
)
return input_fc_out
def layer_fc_infer(self, input_fc_out, layer_idx):
"""
输入侧预测组网第二部分,将input映射到不同层次的向量空间
"""
# 组网与训练保持一致,通过layer_idx指定不同层的FC
input_layer_fc_out = fluid.layers.fc(
input=input_fc_out,
size=self.node_emb_size,
act="tanh",
param_attr=fluid.ParamAttr(
name="trans.layer_fc.weight." + str(layer_idx)),
bias_attr=fluid.ParamAttr(
name="trans.layer_fc.bias."+str(layer_idx)),
)
return input_layer_fc_out
class DnnLayerClassifierNet(object):
"""
层次分类器的主要部分
"""
def __init__(self, args):
self.node_emb_size = args.node_emb_size
self.max_layers = args.layer_size
self.neg_sampling_list = args.neg_sampling_list
self.output_positive = True
self.is_test = args.is_test
self.child_nums = args.child_nums
def _expand_layer(self, input_layer, node, layer_idx):
# 扩展input的输入,使数量与node一致,
# 也可以以其他broadcast的操作进行代替
# 同时兼容了训练组网与预测组网
input_layer_unsequeeze = fluid.layers.unsqueeze(
input=input_layer, axes=[1])
if self.is_test:
input_layer_expand = fluid.layers.expand(
input_layer_unsequeeze, expand_times=[1, node.shape[1], 1])
else:
input_layer_expand = fluid.layers.expand(
input_layer_unsequeeze, expand_times=[1, node[layer_idx].shape[1], 1])
return input_layer_expand
def classifier_layer(self, input, node):
# 扩展input,使维度与node匹配
input_expand = [
self._expand_layer(input[i], node, i) for i in range(self.max_layers)
]
# 将input_emb与node_emb concat到一起过分类器FC
input_node_concat = [
fluid.layers.concat(
input=[input_expand[i], node[i]],
axis=2) for i in range(self.max_layers)
]
hidden_states_fc = [
fluid.layers.fc(
input=input_node_concat[i],
size=self.node_emb_size,
num_flatten_dims=2,
act="tanh",
param_attr=fluid.ParamAttr(
name="cls.concat_fc.weight."+str(i)),
bias_attr=fluid.ParamAttr(name="cls.concat_fc.bias."+str(i))
) for i in range(self.max_layers)
]
# 如果将所有层次的node放到一起计算loss,则需要在此处concat
# 将分类器结果以batch为准绳concat到一起,而不是layer
# 维度形如[batch_size, total_node_num, node_emb_size]
hidden_states_concat = fluid.layers.concat(hidden_states_fc, axis=1)
return hidden_states_concat
def classifier_layer_infer(self, input, node, layer_idx):
# 为infer组网提供的简化版classifier,通过给定layer_idx调用不同层的分类器
# 同样需要保持input与node的维度匹配
input_expand = self._expand_layer(input, node, layer_idx)
# 与训练网络相同的concat逻辑
input_node_concat = fluid.layers.concat(
input=[input_expand, node], axis=2)
# 根据参数名param_attr调用不同的层的FC
hidden_states_fc = fluid.layers.fc(
input=input_node_concat,
size=self.node_emb_size,
num_flatten_dims=2,
act="tanh",
param_attr=fluid.ParamAttr(
name="cls.concat_fc.weight."+str(layer_idx)),
bias_attr=fluid.ParamAttr(name="cls.concat_fc.bias."+str(layer_idx)))
return hidden_states_fc
# -*- coding=utf-8 -*-
"""
# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""
import os
import json
import argparse
import logging
import numpy as np
import paddle.fluid as fluid
from args import print_arguments, parse_args
logging.basicConfig(format="%(asctime)s - %(levelname)s - %(message)s")
logger = logging.getLogger("fluid")
logger.setLevel(logging.INFO)
def read_list(path):
list = []
with open(path, 'r') as fin:
for line in fin.readlines():
data = (line.split('\n'))[0].split(',')
data = [int(i) for i in data]
list.append(data)
return list
def read_list_float(path):
list = []
with open(path, 'r') as fin:
for line in fin.readlines():
data = (line.split('\n'))[0].split(',')
data = [float(i) for i in data]
list.append(data)
return list
def read_layer_list(path):
layer_list = []
layer_list_flat = []
with open(path, 'r') as fin:
for line in fin.readlines():
l = []
layer = (line.split('\n'))[0].split(',')
layer = [int(i) for i in layer]
for node in layer:
if node:
l.append(node)
layer_list_flat.append(node)
layer_list.append(l)
layer_array = np.array(layer_list_flat)
layer_array = layer_array.reshape([-1, 1])
return layer_list, layer_array
def tdm_sampler_prepare(args):
"""load tdm tree param from list file"""
prepare_dict = {}
travel_list = read_list(args.tree_travel_init_path)
travel_array = np.array(travel_list)
prepare_dict['travel_array'] = travel_array
leaf_num = len(travel_list)
prepare_dict['leaf_node_num'] = leaf_num
layer_list, layer_array = read_layer_list(args.tree_layer_init_path)
prepare_dict['layer_array'] = layer_array
layer_node_num_list = [len(i) for i in layer_list]
prepare_dict['layer_node_num_list'] = layer_node_num_list
node_num = int(np.sum(layer_node_num_list))
prepare_dict['node_num'] = node_num
return prepare_dict
def tdm_child_prepare(args):
"""load tdm tree param from list file"""
info_list = read_list(args.tree_info_init_path)
info_array = np.array(info_list)
return info_array
def tdm_emb_prepare(args):
"""load tdm tree emb from list file"""
emb_list = read_list_float(args.tree_emb_init_path)
emb_array = np.array(emb_list)
return emb_array
def trace_var(var, msg_prefix, var_name, need_trace=False, need_detail=False):
"""trace var and its value detail"""
summarize_level = 20
if need_detail:
summarize_level = -1
if need_trace:
if isinstance(var, list):
for i, v in enumerate(var):
fluid.layers.Print(v,
message="{}[{}.{}]".format(
msg_prefix, var_name, i),
summarize=summarize_level)
else:
fluid.layers.Print(var, message="{}[{}]".format(
msg_prefix, var_name), summarize=summarize_level)
if __name__ == "__main__":
args = parse_args()
print_arguments(args)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册