Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel

2.6_repr.word2vec.eval.html 228 KB

You have to be logged in to leave a comment. Sign In
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
  1. ---
  2. title: Evaluating Word2Vec and Doc2vec (basic)
  3. keywords: fastai
  4. sidebar: home_sidebar
  5. summary: "This module is dedicated to evaluate word2vec training with a proxy dataset:"
  6. ---
  7. <!--
  8. #################################################
  9. ### THIS FILE WAS AUTOGENERATED! DO NOT EDIT! ###
  10. #################################################
  11. # file to edit: nbs/2.6_repr.word2vec.eval.ipynb
  12. # command to build the docs after a change: nbdev_build_docs
  13. -->
  14. <div class="container" id="notebook-container">
  15. <div class="cell border-box-sizing code_cell rendered">
  16. <div class="output_wrapper">
  17. <div class="output">
  18. <div class="output_area">
  19. <div class="output_subarea output_stream output_stderr output_text">
  20. <pre>unable to import &#39;smart_open.gcs&#39;, disabling that module
  21. </pre>
  22. </div>
  23. </div>
  24. </div>
  25. </div>
  26. </div>
  27. <div class="cell border-box-sizing code_cell rendered">
  28. </div>
  29. <div class="cell border-box-sizing code_cell rendered">
  30. </div>
  31. <div class="cell border-box-sizing code_cell rendered">
  32. <div class="input">
  33. <div class="inner_cell">
  34. <div class="input_area">
  35. <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span>pip install pyemd
  36. </pre></div>
  37. </div>
  38. </div>
  39. </div>
  40. </div>
  41. <div class="cell border-box-sizing code_cell rendered">
  42. <div class="input">
  43. <div class="inner_cell">
  44. <div class="input_area">
  45. <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#Loading Artifacts</span>
  46. <span class="n">artifacts</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="s1">&#39;/tf/main/benchmarking/traceability/testbeds/nltk/[libest-pre-all].csv&#39;</span><span class="p">)</span>
  47. <span class="n">texts</span> <span class="o">=</span> <span class="p">[</span><span class="n">doc</span><span class="o">.</span><span class="n">split</span><span class="p">()</span> <span class="k">for</span> <span class="n">doc</span> <span class="ow">in</span> <span class="nb">list</span><span class="p">(</span><span class="n">artifacts</span><span class="p">[</span><span class="s1">&#39;0&#39;</span><span class="p">])]</span>
  48. </pre></div>
  49. </div>
  50. </div>
  51. </div>
  52. </div>
  53. <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
  54. <div class="text_cell_render border-box-sizing rendered_html">
  55. <h2 id="Basic-Assessment-Word2vec">Basic Assessment Word2vec<a class="anchor-link" href="#Basic-Assessment-Word2vec">&#182;</a></h2>
  56. </div>
  57. </div>
  58. </div>
  59. <div class="cell border-box-sizing code_cell rendered">
  60. <div class="input">
  61. <div class="inner_cell">
  62. <div class="input_area">
  63. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">word2vec_model</span> <span class="o">=</span> <span class="n">gensim</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">Word2Vec</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s2">&quot;test_data/models/word2vec_libest.model&quot;</span><span class="p">)</span>
  64. </pre></div>
  65. </div>
  66. </div>
  67. </div>
  68. </div>
  69. <div class="cell border-box-sizing code_cell rendered">
  70. <div class="input">
  71. <div class="inner_cell">
  72. <div class="input_area">
  73. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">word2vec_model</span><span class="o">.</span><span class="n">init_sims</span><span class="p">(</span><span class="n">replace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="c1"># Normalizes the vectors in the word2vec class.</span>
  74. </pre></div>
  75. </div>
  76. </div>
  77. </div>
  78. </div>
  79. <div class="cell border-box-sizing code_cell rendered">
  80. <div class="input">
  81. <div class="inner_cell">
  82. <div class="input_area">
  83. <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#Testing Distance</span>
  84. <span class="n">distance</span> <span class="o">=</span> <span class="n">word2vec_model</span><span class="o">.</span><span class="n">wv</span><span class="o">.</span><span class="n">wmdistance</span><span class="p">(</span><span class="n">texts</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">texts</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
  85. </pre></div>
  86. </div>
  87. </div>
  88. </div>
  89. </div>
  90. <div class="cell border-box-sizing code_cell rendered">
  91. <div class="input">
  92. <div class="inner_cell">
  93. <div class="input_area">
  94. <div class=" highlight hl-ipython3"><pre><span></span><span class="nb">print</span><span class="p">(</span><span class="n">texts</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="n">texts</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="n">distance</span><span class="p">)</span>
  95. </pre></div>
  96. </div>
  97. </div>
  98. </div>
  99. </div>
  100. <div class="cell border-box-sizing code_cell rendered">
  101. <div class="input">
  102. <div class="inner_cell">
  103. <div class="input_area">
  104. <div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">reduce_dimensions</span><span class="p">(</span><span class="n">model</span><span class="p">):</span>
  105. <span class="n">num_dimensions</span> <span class="o">=</span> <span class="mi">2</span> <span class="c1"># final num dimensions (2D, 3D, etc)</span>
  106. <span class="n">vectors</span> <span class="o">=</span> <span class="p">[]</span> <span class="c1"># positions in vector space</span>
  107. <span class="n">labels</span> <span class="o">=</span> <span class="p">[]</span> <span class="c1"># keep track of words to label our data again later</span>
  108. <span class="k">for</span> <span class="n">word</span> <span class="ow">in</span> <span class="n">model</span><span class="o">.</span><span class="n">wv</span><span class="o">.</span><span class="n">vocab</span><span class="p">:</span>
  109. <span class="n">vectors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">model</span><span class="o">.</span><span class="n">wv</span><span class="p">[</span><span class="n">word</span><span class="p">])</span>
  110. <span class="n">labels</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">word</span><span class="p">)</span>
  111. <span class="c1"># convert both lists into numpy vectors for reduction</span>
  112. <span class="n">vectors</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">vectors</span><span class="p">)</span>
  113. <span class="n">labels</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">labels</span><span class="p">)</span>
  114. <span class="c1"># reduce using t-SNE</span>
  115. <span class="n">vectors</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">vectors</span><span class="p">)</span>
  116. <span class="n">tsne</span> <span class="o">=</span> <span class="n">TSNE</span><span class="p">(</span><span class="n">n_components</span><span class="o">=</span><span class="n">num_dimensions</span><span class="p">,</span> <span class="n">random_state</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
  117. <span class="n">vectors</span> <span class="o">=</span> <span class="n">tsne</span><span class="o">.</span><span class="n">fit_transform</span><span class="p">(</span><span class="n">vectors</span><span class="p">)</span>
  118. <span class="n">x_vals</span> <span class="o">=</span> <span class="p">[</span><span class="n">v</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">vectors</span><span class="p">]</span>
  119. <span class="n">y_vals</span> <span class="o">=</span> <span class="p">[</span><span class="n">v</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">vectors</span><span class="p">]</span>
  120. <span class="k">return</span> <span class="n">x_vals</span><span class="p">,</span> <span class="n">y_vals</span><span class="p">,</span> <span class="n">labels</span>
  121. <span class="k">def</span> <span class="nf">plot_with_plotly</span><span class="p">(</span><span class="n">x_vals</span><span class="p">,</span> <span class="n">y_vals</span><span class="p">,</span> <span class="n">labels</span><span class="p">,</span> <span class="n">plot_in_notebook</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
  122. <span class="kn">from</span> <span class="nn">plotly.offline</span> <span class="k">import</span> <span class="n">init_notebook_mode</span><span class="p">,</span> <span class="n">iplot</span><span class="p">,</span> <span class="n">plot</span>
  123. <span class="kn">import</span> <span class="nn">plotly.graph_objs</span> <span class="k">as</span> <span class="nn">go</span>
  124. <span class="n">trace</span> <span class="o">=</span> <span class="n">go</span><span class="o">.</span><span class="n">Scatter</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">x_vals</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="n">y_vals</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s1">&#39;text&#39;</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="n">labels</span><span class="p">)</span>
  125. <span class="n">data</span> <span class="o">=</span> <span class="p">[</span><span class="n">trace</span><span class="p">]</span>
  126. <span class="k">if</span> <span class="n">plot_in_notebook</span><span class="p">:</span>
  127. <span class="n">init_notebook_mode</span><span class="p">(</span><span class="n">connected</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
  128. <span class="n">iplot</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">filename</span><span class="o">=</span><span class="s1">&#39;word-embedding-plot&#39;</span><span class="p">)</span>
  129. <span class="k">else</span><span class="p">:</span>
  130. <span class="n">plot</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">filename</span><span class="o">=</span><span class="s1">&#39;word-embedding-plot.html&#39;</span><span class="p">)</span>
  131. <span class="k">def</span> <span class="nf">plot_with_matplotlib</span><span class="p">(</span><span class="n">x_vals</span><span class="p">,</span> <span class="n">y_vals</span><span class="p">,</span> <span class="n">labels</span><span class="p">):</span>
  132. <span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
  133. <span class="kn">import</span> <span class="nn">random</span>
  134. <span class="n">random</span><span class="o">.</span><span class="n">seed</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
  135. <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">12</span><span class="p">,</span> <span class="mi">12</span><span class="p">))</span>
  136. <span class="n">plt</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">x_vals</span><span class="p">,</span> <span class="n">y_vals</span><span class="p">)</span>
  137. <span class="c1">#</span>
  138. <span class="c1"># Label randomly subsampled 25 data points</span>
  139. <span class="c1">#</span>
  140. <span class="n">indices</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">labels</span><span class="p">)))</span>
  141. <span class="n">selected_indices</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">sample</span><span class="p">(</span><span class="n">indices</span><span class="p">,</span> <span class="mi">25</span><span class="p">)</span>
  142. <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">selected_indices</span><span class="p">:</span>
  143. <span class="n">plt</span><span class="o">.</span><span class="n">annotate</span><span class="p">(</span><span class="n">labels</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="p">(</span><span class="n">x_vals</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">y_vals</span><span class="p">[</span><span class="n">i</span><span class="p">]))</span>
  144. </pre></div>
  145. </div>
  146. </div>
  147. </div>
  148. </div>
  149. <div class="cell border-box-sizing code_cell rendered">
  150. <div class="input">
  151. <div class="inner_cell">
  152. <div class="input_area">
  153. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">x_vals</span><span class="p">,</span> <span class="n">y_vals</span><span class="p">,</span> <span class="n">labels</span> <span class="o">=</span> <span class="n">reduce_dimensions</span><span class="p">(</span><span class="n">word2vec_model</span><span class="p">)</span>
  154. </pre></div>
  155. </div>
  156. </div>
  157. </div>
  158. </div>
  159. <div class="cell border-box-sizing code_cell rendered">
  160. <div class="input">
  161. <div class="inner_cell">
  162. <div class="input_area">
  163. <div class=" highlight hl-ipython3"><pre><span></span><span class="k">try</span><span class="p">:</span>
  164. <span class="n">get_ipython</span><span class="p">()</span>
  165. <span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
  166. <span class="n">plot_function</span> <span class="o">=</span> <span class="n">plot_with_matplotlib</span>
  167. <span class="k">else</span><span class="p">:</span>
  168. <span class="n">plot_function</span> <span class="o">=</span> <span class="n">plot_with_plotly</span>
  169. </pre></div>
  170. </div>
  171. </div>
  172. </div>
  173. </div>
  174. <div class="cell border-box-sizing code_cell rendered">
  175. <div class="input">
  176. <div class="inner_cell">
  177. <div class="input_area">
  178. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">plot_function</span><span class="p">(</span><span class="n">x_vals</span><span class="p">,</span> <span class="n">y_vals</span><span class="p">,</span> <span class="n">labels</span><span class="p">)</span>
  179. </pre></div>
  180. </div>
  181. </div>
  182. </div>
  183. </div>
  184. <div class="cell border-box-sizing code_cell rendered">
  185. <div class="input">
  186. <div class="inner_cell">
  187. <div class="input_area">
  188. <div class=" highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">matplotlib</span> inline
  189. <span class="n">plot_with_matplotlib</span><span class="p">(</span><span class="n">x_vals</span><span class="p">,</span> <span class="n">y_vals</span><span class="p">,</span> <span class="n">labels</span><span class="p">)</span>
  190. </pre></div>
  191. </div>
  192. </div>
  193. </div>
  194. </div>
  195. <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
  196. <div class="text_cell_render border-box-sizing rendered_html">
  197. <h2 id="Basic-Assessment-Doc2Vec">Basic Assessment Doc2Vec<a class="anchor-link" href="#Basic-Assessment-Doc2Vec">&#182;</a></h2>
  198. </div>
  199. </div>
  200. </div>
  201. <div class="cell border-box-sizing code_cell rendered">
  202. <div class="input">
  203. <div class="inner_cell">
  204. <div class="input_area">
  205. <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">math</span> <span class="k">as</span> <span class="nn">m</span>
  206. <span class="kn">import</span> <span class="nn">random</span> <span class="k">as</span> <span class="nn">r</span>
  207. <span class="kn">import</span> <span class="nn">collections</span>
  208. </pre></div>
  209. </div>
  210. </div>
  211. </div>
  212. </div>
  213. <div class="cell border-box-sizing code_cell rendered">
  214. <div class="input">
  215. <div class="inner_cell">
  216. <div class="input_area">
  217. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">doc2vec_model</span> <span class="o">=</span> <span class="n">gensim</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">Doc2Vec</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s2">&quot;test_data/models/doc2vec_libest.model&quot;</span><span class="p">)</span>
  218. </pre></div>
  219. </div>
  220. </div>
  221. </div>
  222. <div class="output_wrapper">
  223. <div class="output">
  224. <div class="output_area">
  225. <div class="output_subarea output_stream output_stderr output_text">
  226. <pre>2020-05-04 20:03:58,913 : INFO : loading Doc2Vec object from test_data/models/doc2vec_libest.model
  227. 2020-05-04 20:03:58,986 : INFO : loading vocabulary recursively from test_data/models/doc2vec_libest.model.vocabulary.* with mmap=None
  228. 2020-05-04 20:03:58,987 : INFO : loading trainables recursively from test_data/models/doc2vec_libest.model.trainables.* with mmap=None
  229. 2020-05-04 20:03:58,988 : INFO : loading wv recursively from test_data/models/doc2vec_libest.model.wv.* with mmap=None
  230. 2020-05-04 20:03:58,989 : INFO : loading docvecs recursively from test_data/models/doc2vec_libest.model.docvecs.* with mmap=None
  231. 2020-05-04 20:03:58,990 : INFO : loaded test_data/models/doc2vec_libest.model
  232. </pre>
  233. </div>
  234. </div>
  235. </div>
  236. </div>
  237. </div>
  238. <div class="cell border-box-sizing code_cell rendered">
  239. <div class="input">
  240. <div class="inner_cell">
  241. <div class="input_area">
  242. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">s</span> <span class="o">=</span> <span class="n">m</span><span class="o">.</span><span class="n">floor</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">texts</span><span class="p">)</span><span class="o">*</span><span class="mf">0.1</span><span class="p">)</span>
  243. <span class="n">test_corpus</span> <span class="o">=</span> <span class="p">[</span><span class="n">i</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">texts</span><span class="p">[:</span><span class="n">s</span><span class="p">])]</span>
  244. <span class="n">train_corpus</span> <span class="o">=</span> <span class="p">[</span><span class="n">gensim</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">doc2vec</span><span class="o">.</span><span class="n">TaggedDocument</span><span class="p">(</span><span class="n">i</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="p">[</span><span class="n">i</span><span class="p">[</span><span class="mi">0</span><span class="p">]])</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">texts</span><span class="p">[</span><span class="n">s</span><span class="p">:])]</span>
  245. </pre></div>
  246. </div>
  247. </div>
  248. </div>
  249. </div>
  250. <div class="cell border-box-sizing code_cell rendered">
  251. <div class="input">
  252. <div class="inner_cell">
  253. <div class="input_area">
  254. <div class=" highlight hl-ipython3"><pre><span></span><span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="n">doc2vec_model</span><span class="o">.</span><span class="n">docvecs</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">train_corpus</span><span class="p">)</span>
  255. <span class="nb">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">doc2vec_model</span><span class="o">.</span><span class="n">docvecs</span><span class="p">),</span> <span class="nb">len</span><span class="p">(</span><span class="n">train_corpus</span><span class="p">))</span>
  256. </pre></div>
  257. </div>
  258. </div>
  259. </div>
  260. <div class="output_wrapper">
  261. <div class="output">
  262. <div class="output_area">
  263. <div class="output_subarea output_stream output_stdout output_text">
  264. <pre>79 79
  265. </pre>
  266. </div>
  267. </div>
  268. </div>
  269. </div>
  270. </div>
  271. <div class="cell border-box-sizing code_cell rendered">
  272. <div class="input">
  273. <div class="inner_cell">
  274. <div class="input_area">
  275. <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#Self-similarity assessment</span>
  276. <span class="n">ranks</span> <span class="o">=</span> <span class="p">[]</span>
  277. <span class="n">second_ranks</span> <span class="o">=</span> <span class="p">[]</span>
  278. </pre></div>
  279. </div>
  280. </div>
  281. </div>
  282. </div>
  283. <div class="cell border-box-sizing code_cell rendered">
  284. <div class="input">
  285. <div class="inner_cell">
  286. <div class="input_area">
  287. <div class=" highlight hl-ipython3"><pre><span></span><span class="k">for</span> <span class="n">doc_id</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">train_corpus</span><span class="p">)):</span>
  288. <span class="n">inferred_vector</span> <span class="o">=</span> <span class="n">doc2vec_model</span><span class="o">.</span><span class="n">infer_vector</span><span class="p">(</span><span class="n">train_corpus</span><span class="p">[</span><span class="n">doc_id</span><span class="p">]</span><span class="o">.</span><span class="n">words</span><span class="p">)</span>
  289. <span class="n">sims</span> <span class="o">=</span> <span class="n">doc2vec_model</span><span class="o">.</span><span class="n">docvecs</span><span class="o">.</span><span class="n">most_similar</span><span class="p">([</span><span class="n">inferred_vector</span><span class="p">],</span> <span class="n">topn</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">doc2vec_model</span><span class="o">.</span><span class="n">docvecs</span><span class="p">))</span>
  290. <span class="n">rank</span> <span class="o">=</span> <span class="p">[</span><span class="n">docid</span> <span class="k">for</span> <span class="n">docid</span><span class="p">,</span> <span class="n">sim</span> <span class="ow">in</span> <span class="n">sims</span><span class="p">]</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">doc_id</span><span class="p">)</span>
  291. <span class="n">ranks</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">rank</span><span class="p">)</span>
  292. <span class="n">second_ranks</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">sims</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
  293. </pre></div>
  294. </div>
  295. </div>
  296. </div>
  297. </div>
  298. <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
  299. <div class="text_cell_render border-box-sizing rendered_html">
  300. <p>Checking the inferred-vector against a training-vector is a sort of ‘sanity check’ as to whether the model is behaving in a usefully consistent manner, though not a real ‘accuracy’ value.</p>
  301. </div>
  302. </div>
  303. </div>
  304. <div class="cell border-box-sizing code_cell rendered">
  305. <div class="input">
  306. <div class="inner_cell">
  307. <div class="input_area">
  308. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">counter</span> <span class="o">=</span> <span class="n">collections</span><span class="o">.</span><span class="n">Counter</span><span class="p">(</span><span class="n">ranks</span><span class="p">)</span>
  309. <span class="nb">print</span><span class="p">(</span><span class="n">counter</span><span class="p">)</span>
  310. </pre></div>
  311. </div>
  312. </div>
  313. </div>
  314. <div class="output_wrapper">
  315. <div class="output">
  316. <div class="output_area">
  317. <div class="output_subarea output_stream output_stdout output_text">
  318. <pre>Counter({0: 79})
  319. </pre>
  320. </div>
  321. </div>
  322. </div>
  323. </div>
  324. </div>
  325. <div class="cell border-box-sizing code_cell rendered">
  326. <div class="input">
  327. <div class="inner_cell">
  328. <div class="input_area">
  329. <div class=" highlight hl-ipython3"><pre><span></span><span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Document (</span><span class="si">{}</span><span class="s1">): «</span><span class="si">{}</span><span class="s1">»</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">doc_id</span><span class="p">,</span> <span class="s1">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">train_corpus</span><span class="p">[</span><span class="n">doc_id</span><span class="p">]</span><span class="o">.</span><span class="n">words</span><span class="p">)))</span>
  330. <span class="nb">print</span><span class="p">(</span><span class="sa">u</span><span class="s1">&#39;SIMILAR/DISSIMILAR DOCS PER MODEL </span><span class="si">%s</span><span class="s1">:</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">model</span><span class="p">)</span>
  331. <span class="k">for</span> <span class="n">label</span><span class="p">,</span> <span class="n">index</span> <span class="ow">in</span> <span class="p">[(</span><span class="s1">&#39;MOST&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;SECOND-MOST&#39;</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;MEDIAN&#39;</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">sims</span><span class="p">)</span><span class="o">//</span><span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;LEAST&#39;</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">sims</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)]:</span>
  332. <span class="nb">print</span><span class="p">(</span><span class="sa">u</span><span class="s1">&#39;</span><span class="si">%s</span><span class="s1"> </span><span class="si">%s</span><span class="s1">: «</span><span class="si">%s</span><span class="s1">»</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">label</span><span class="p">,</span> <span class="n">sims</span><span class="p">[</span><span class="n">index</span><span class="p">],</span> <span class="s1">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">train_corpus</span><span class="p">[</span><span class="n">sims</span><span class="p">[</span><span class="n">index</span><span class="p">][</span><span class="mi">0</span><span class="p">]]</span><span class="o">.</span><span class="n">words</span><span class="p">)))</span>
  333. </pre></div>
  334. </div>
  335. </div>
  336. </div>
  337. <div class="output_wrapper">
  338. <div class="output">
  339. <div class="output_area">
  340. <div class="output_subarea output_stream output_stdout output_text">
  341. <pre>Document (78): «util function set certif privat key use ssl context return success int est client set cert key ssl ctx ctx cert evp pkey key ssl ctx use certif ctx cert est log err error set certif ossl dump ssl error return ssl ctx use privat key ctx key est log err unabl set privat key ossl dump ssl error return verifi key match cert ssl ctx check privat key ctx est log err privat key match certif public key ossl dump ssl error return return sign certif request use digest key pass return open ssl error code req sign ctx static int est client req sign req evp pkey pkey const evp int evp pkey ctx pkctx null evp ctx mctx evp ctx init mctx evp digest sign init mctx pkctx null pkey return encod use der asn set modifi flag req open ssl keep cach copi der encod data case set flag tell open ssl run asn encod rather use cach copi req info enc modifi req sign ctx mctx evp ctx cleanup mctx return popul request build request buffer call open ssl insert field header paramet req pointer buffer hold x509 request header pkey public key place x509 request common name place x509 request challeng password place x509 header return valu est_err_non success static est_error est_ctx ctx x509_req req evp_pkey pkey char char x509_name subj setup version number x509_req_set_vers req est_log_err unabl set x509 version &#34;); ossl_dump_ssl_error (); return est_err_x509_v add common name entri subj req subj mbstring_asc unsign char est_log_err unabl set x509 common name &#34;); ossl_dump_ssl_error (); return est_err_x509_cn add challeng password attribut requir need remov add attribut part simpl enrol flow ctx csr_pop_requir ctx client_force_pop est_log_info client includ challeng password csr &#34;); req nid_pkcs9_challeng password mbstring_asc unsign char est_log_err unabl set x509 challeng password attribut &#34;); ossl_dump_ssl_error (); return est_err_x509_attr set public key request x509_req_set_pubkey req pkey est_log_err unabl set public key &#34;); ossl_dump_ssl_error (); return est_err_x509_pubkey return est_err_non function generat pkcs10 request paramet common name put certif tls uniqu ssl session becom challeng password pkey privat key use sign request return valu est_err_non success static est_error est_generate_pkcs10 est_ctx ctx char char evp_pkey pkey x509_req pkcs10 x509_req req null est_error int ossl_rv req x509_req_new (); req null est_log_err unabl alloc x509_req &#34;); ossl_dump_ssl_error (); return est_err_malloc ctx req pkey est_err_non x509_req_fre req return sign request ossl_rv req pkey ctx signing_digest ossl_rv est_log_err unabl sign x509 cert request &#34;); x509_req_fre req ossl_dump_ssl_error (); return est_err_x509_sign pkcs10 req return est_err_non function callback use open ssl verify_cert function call end cert verif allow opportun gather inform regard fail cert verif possibl chang result verif callback similar ossl routin alter verif result static int int x509_store_ctx ctx int cert_error ctx x509 current_cert ctx est_log_info enter function cert_error cert_error current_cert stdout x509_get_subject_nam current_cert xn_flag_onelin printf (&#34;\ &#34;); est_log_info (&#34;% error depth lookup ctx crl path &#34;&#34;, cert_error ctx cert_error )); return function remov crls receiv cacert respons buffer paramet ctx est context repres session cacert pointer buffer hold result cert cacerts_len length cacert buffer pointer pkcs7 buffer receiv return valu est_err_non success static est_error est_ctx ctx unsign char cacert int cacerts_len pkcs7 int nid int crls_found bio b64_enc null bio p7bio_out null int new_cacerts_len char new_cacerts_buf null int count nid obj_obj2nid type switch nid case nid_pkcs7_sign sign crl sk_x509_crl_pop_fre sign crl x509_crl_free sign crl null crls_found break case nid_pkcs7_sign envelop signed_and_envelop crl sk_x509_crl_pop_fre signed_and_envelop crl x509_crl_free sign crl null crls_found break default est_log_err invalid nid valu pkcs7 structur &#34;); return est_err_cacert_verif break crls remov origin pkcs7 buffer need updat alway base64 encod alloc bio write pkcs7 struct back pem format get pointer length new base64 pem encod buffer copi origin buffer pass sinc crls remov new buffer alway shorter fit origin buffer crls_found est_log_info crl attach certif remov crl )&#34;); b64_enc bio_new bio_f_base64 ()); b64_enc null est_log_err bio_new fail &#34;); ossl_dump_ssl_error (); return est_err_malloc p7bio_out bio_new bio_s_mem ()); p7bio_out null est_log_err unabl access cert buffer &#34;); ossl_dump_ssl_error (); return est_err_malloc p7bio_out bio_push b64_enc p7bio_out memzero_ cacert cacerts_len count i2d_pkcs7_bio p7bio_out count est_log_err pem_write_bio_pkcs7 fail &#34;); ossl_dump_ssl_error (); bio_free_al p7bio_out return est_err_cacert_verif void bio_flush p7bio_out bio_get_mem_data return pointer length data contain mem bio noth alloc pass back new_cacerts_len int bio_get_mem_data p7bio_out char **)&amp; new_cacerts_buf new_cacerts_len est_log_err fail copi pkcs7 data &#34;); ossl_dump_ssl_error (); bio_free_al p7bio_out return est_err_cacert_verif copi new buffer back old buffer memcpy_ cacert cacerts_len new_cacerts_buf new_cacerts_len cacerts_len new_cacerts_len bio_free_al p7bio_out return est_err_non function decod pass base64 encod buffer return decod cacert return est_err_non caller respons free cacerts_decod buffer static est_error b64_decode_cacert unsign char cacert int cacerts_len unsign char cacerts_decod int cacerts_decoded_len bio null bio b64 null unsign char decoded_buf int decoded_buf_len cacerts_decod null cacerts_decoded_len b64 bio_new bio_f_base64 ()); b64 null est_log_err bio_new fail &#34;); ossl_dump_ssl_error (); return est_err_malloc decod alway take less origin buffer bio_new_mem_buf cacert cacerts_len null est_log_err unabl access cert buffer &#34;); ossl_dump_ssl_error (); bio_free_al b64 return est_err_malloc bio_push b64 decoded_buf malloc cacerts_len decoded_buf null est_log_err unabl alloc cert buffer decod &#34;); bio_free_al return est_err_malloc decoded_buf_len bio_read decoded_buf cacerts_len cacerts_decod decoded_buf cacerts_decoded_len decoded_buf_len bio_free_al return est_err_non return est_err_non caller respons free pkcs7 struct static est_error create_pkcs7 unsign char cacerts_decod int cacerts_decoded_len pkcs7 pkcs7out bio p7bio_in null pkcs7 pkcs7 null get pkcs7 format buffer certif read stack x509 cert p7bio_in bio_new_mem_buf cacerts_decod cacerts_decoded_len p7bio_in null est_log_err unabl access pkcs7 buffer &#34;); ossl_dump_ssl_error (); return est_err_malloc pkcs7 d2i_pkcs7_bio p7bio_in null pkcs7 null est_log_err unabl read pkcs7 base certif buffer &#34;); ossl_dump_ssl_error (); bio_free_al p7bio_in return est_err_load_cacert bio_free_al p7bio_in pkcs7out pkcs7 return est_err_non function invok cacert respons receiv cert chain built cert store certif verifi store essenti verifi cert chain ensur intermedi verifi back one includ root cert cacert respons crls attach remov new pkcs7 buffer creat paramet ctx est context repres session cacert pointer buffer hold receiv cert cacerts_len length cacert buffer return valu est_err_non success static est_error verify_cacert_resp est_ctx ctx unsign char cacert int cacerts_len int int fail est_error est_rc est_err_non x509_store trusted_cacerts_stor null stack_of x509 stack null x509 current_cert null int unsign char cacerts_decod null int cacerts_decoded_len x509_store_ctx store_ctx null pkcs7 pkcs7 null ctx null cacert null cacerts_len est_log_err invalid paramet ctx cacert cacerts_len ctx cacert cacerts_len return base64 decod incom cert buffer convert pkcs7 structur extract stack cert b64_decode_cacert cacert cacerts_len cacerts_decod cacerts_decoded_len est_err_non est_log_err base64 decod receiv cert fail &#34;); return create_pkcs7 cacerts_decod cacerts_decoded_len pkcs7 est_err_non est_log_err fail build pkcs7 structur receievd buffer &#34;); free cacerts_decod return pkcs7_to_stack pkcs7 stack est_err_non est_log_err could obtain stack cert pkcs7 structur &#34;); free cacerts_decod pkcs7_free pkcs7 return point stack x509 cert make cert respons sent est server build store trust cert use verifi walk cert verifi build store context store cert verifi call verifi function trusted_cacerts_stor x509_store_new (); trusted_cacerts_stor null est_log_err unabl alloc cert store &#34;); ossl_dump_ssl_error (); free cacerts_decod pkcs7_free pkcs7 return est_err_malloc trusted_cacerts_stor sk_x509_num stack ++) current_cert sk_x509_valu stack self sign add trust store otherwis add untrust store x509_check_issu current_cert current_cert x509_v_ok est_log_info cert trust store )&#34;, current_cert name x509_store_add_cert trusted_cacerts_stor current_cert set x509 store context store_ctx x509_store_ctx_new (); store_ctx null est_log_err unabl alloc new store context &#34;); ossl_dump_ssl_error (); free cacerts_decod pkcs7_free pkcs7 x509_store_fre trusted_cacerts_stor return est_err_malloc sk_x509_num stack ++) x509_store_ctx_init store_ctx trusted_cacerts_stor null stack est_log_err unabl initi new store context &#34;); ossl_dump_ssl_error (); free cacerts_decod pkcs7_free pkcs7 x509_store_fre trusted_cacerts_stor x509_store_ctx_fre store_ctx return est_err_malloc current_cert sk_x509_valu stack est_log_info cert store )&#34;, current_cert name store_ctx current_cert x509_verify_cert store_ctx cert fail verif log continu est_log_warn certif fail verif )&#34;, current_cert name fail final remov crls might attach est_rc ctx cacert cacerts_len pkcs7 free cacerts_decod x509_store_fre trusted_cacerts_stor x509_store_ctx_fre store_ctx pkcs7_free pkcs7 fail return est_err_cacert_verif els return est_rc function regist ssl call verif certif server ident cert chain main purpos look case cert could verifi case est client app regist callback receiv untrust cert forward est client applic paramet status certif ssl verifi code x_ctx ptr x509 certif store structur return valu int potenti modifi status process certif cane modifi client applic provid callback allow process modifi callback static int cert_verify_cb int x509_store_ctx x_ctx ssl ssl est_ctx e_ctx int approv int cert_error x509 current_cert null approv x_ctx null est_log_err invalid x509 context pointer &#34;); return approv cert_error x_ctx current_cert x_ctx est_log_info enter cert pass open ssl error cert_error cert_error )); retriev pointer ssl structur connect applic specif data store ssl object est ctx est session est_log_err invalid ssl exdata index est context valu &#34;); return approv ssl x_ctx ()); ssl est_log_err null pointer retriev ssl session pointer x509 ctx ex_data &#34;); return approv e_ctx ssl_get_ex_data ssl e_ctx est_log_err null pointer retriev est context ssl ex_data &#34;); return approv switch cert_error case notifi client applic cert_untrust expect get case cannot verifi server cert current result server cannot verifi cert unable_to_get_crl pass make sure applic know although case case case applic provid callback ahead pass cert store log warn return ssl gave status e_ctx est_log_info est client applic server cert verifi function regist &#34;); approv e_ctx current_cert cert_error els est_log_info est client applic server cert verifi function regist &#34;); cert_error enabl crl check tls stack applic load crl verifi error occur peer cert valid confirm revok app provid way notifi option log warn proceed est_log_warn crl load tls peer allow .&#34;); approv break remaind result state remain unchang est log warn messag log case case sinc check certif self sign still warn user case continu extens error case case case case case case case case default est_log_warn certif verifi fail reason )&#34;, cert_error cert_error )); break return approv function use creat initi ssl_ctx use client proxi est oper ssl_ctx store est_ctx paramet ctx est context return valu est_error est_err_non success static est_error est_ctx ctx ssl_ctx s_ctx x509_verify_param vpm null est_error est_err_non est_log_vers (); ctx null est_log_err invalid context pointer &#34;); return est_err_no_ctx s_ctx ssl_ctx_new sslv23_client_method ())) null est_log_err fail obtain new ssl context &#34;); ossl_dump_ssl_error (); return est_err_ssl_ctx_new tls use est ssl_ctx_set_opt s_ctx ssl_op_no_sslv2 ssl_op_no_sslv3 ssl_op_no_tlsv1 limit cipher suit offer s_ctx est_cipher_list est_log_err fail set ssl cipher suit &#34;); ossl_dump_ssl_error (); return make sure verifi server ssl_ctx_set_verifi s_ctx ssl_verify_p cert_verify_cb leverag cert store alreadi creat trust chain provid applic either case ssl stack clean cert store ssl_ctx_free (), let remov refer tri clean later s_ctx ctx trusted_certs_stor ctx trusted_certs_stor null set x509 param assign ssl ctx enabl crl check max untrust cert exist chain ensur cert use intend contain x509 key usag extens vpm (); vpm null est_log_err unabl alloc verifi paramet structur &#34;); ossl_dump_ssl_error (); return est_err_malloc enabl crl check ctx enable_crl vpm vpm vpm est_tls_verify_depth vpm ssl_ctx_set1_param s_ctx vpm vpm save refer ssl session use later match est_ctx ssl context est_ssl_info_cb (). ctx ssl_ctx s_ctx ssl_get_ex_new_index est context null null null last config set ctx base instead global entir libcrypto librari need ensur csr string attribut ascii printabl format b_asn1_print return function calcul digest valu use http request server ask client use http digest authent use token pars http server respons earlier calcul digest static unsign char est_ctx ctx char uri char user char pwd evp_md_ctx mdctx const evp_md evp_md5 (); uint8_t ha1 evp_max_md_s unsign int ha1_len char ha1_str uint8_t ha2 evp_max_md_s unsign int ha2_len char ha2_str char nonce_cnt 00000001 unsign char digest evp_max_md_s unsign int d_len unsign char calcul ha1 use usernam realm password server nonc mdctx evp_md_ctx_creat (); evp_digest init_ex mdctx null est_log_err unabl initi digest &#34;); return null evp_digest updat mdctx user strnlen_ user max_uidpwd )); evp_digest updat mdctx &#34;:&#34;, evp_digest updat mdctx ctx realm strnlen_ ctx realm max_realm )); evp_digest updat mdctx &#34;:&#34;, evp_digest updat mdctx pwd strnlen_ pwd max_uidpwd )); evp_digest final mdctx ha1 ha1_len evp_md_ctx_destroy mdctx est_hex_to_str ha1_str ha1 ha1_len calcul ha2 use method uri mdctx evp_md_ctx_creat (); evp_digest init_ex mdctx null est_log_err unabl initi digest &#34;); return null evp_digest updat mdctx post evp_digest updat mdctx &#34;:&#34;, evp_digest updat mdctx uri strnlen_ uri max_realm )); evp_digest final mdctx ha2 ha2_len evp_md_ctx_destroy mdctx est_hex_to_str ha2_str ha2 ha2_len calcul auth digest use ha1 nonc nonc count client nonc qop ha2 mdctx evp_md_ctx_creat (); evp_digest init_ex mdctx null est_log_err unabl initi digest &#34;); return null evp_digest updat mdctx ha1_str ha1_len evp_digest updat mdctx &#34;:&#34;, evp_digest updat mdctx ctx s_nonc strnlen_ ctx s_nonc max_nonc )); evp_digest updat mdctx &#34;:&#34;, evp_digest updat mdctx nonce_cnt strnlen_ nonce_cnt max_nc )); evp_digest updat mdctx &#34;:&#34;, evp_digest updat mdctx ctx c_nonc strnlen_ ctx c_nonc max_nonc )); evp_digest updat mdctx &#34;:&#34;, evp_digest updat mdctx auth evp_digest updat mdctx &#34;:&#34;, evp_digest updat mdctx ha2_str ha2_len evp_digest final mdctx digest d_len evp_md_ctx_destroy mdctx malloc null est_log_err unabl alloc memori digest &#34;); return null est_hex_to_str char digest d_len return use retriev credenti server request either basic digest mode valu need applic layer either mode usernam password api indic mode callback case anyth chang static void est_ctx ctx est_http_auth_mod auth_mod char user char pwd est_http_auth_hdr auth_credenti see one part reset part ctx userid memzero_ ctx userid sizeof ctx userid )); ctx password memzero_ ctx password sizeof ctx password )); need ask applic layer credenti memzero_ auth_credenti sizeof auth_credenti )); ctx auth_credentials_cb auth_credenti mode auth_mod ctx auth_credentials_cb auth_credenti est_log_err attempt obtain token applic fail .&#34;); get credenti expect point null string generat header auth_credenti user null user els max_uidpwd strnlen_ auth_credenti user max_uidpwd est_log_err userid provid larger max max_uidpwd user els eok strncpy_ user max_uidpwd auth_credenti user max_uidpwd est_log_err invalid user provid &#34;); auth_credenti pwd null pwd els max_uidpwd strnlen_ auth_credenti pwd max_uidpwd est_log_err password provid larger max max_uidpwd pwd els eok strncpy_ pwd max_uidpwd auth_credenti pwd max_uidpwd est_log_err invalid user password provid &#34;); auth_credenti function add http authent header outgo http request allow server authent est client paramet ctx est context hdr pointer buffer hold header uri pointer buffer hold uri use header static void est_ctx ctx char hdr char uri int hdr_len unsign char digest unsign char client_random char max_uidpwd uid pwd &#34;:&#34; char both_b64 max_uidpwd int both_len est_http_auth_hdr auth_credenti char token null char token_b64 max_auth_token_len char user max_uidpwd char pwd max_uidpwd int enc_len int token_len memzero_ max_uidpwd memzero_ both_b64 max_uidpwd hdr_len int strnlen_ hdr hdr_len est_log_warn authent header took maximum amount buffer )&#34;, switch ctx auth_mod case auth_bas make sure part credenti send oper origin mode app layer provid front need ask app layer ctx userid ctx password memzero_ user max_uidpwd memzero_ pwd max_uidpwd ctx ctx auth_mod user pwd regardless come back build string contain snprintf max_uidpwd user pwd els use given configur est_client_set_auth snprintf max_uidpwd ctx userid ctx password base64 encod combin string build http auth header both_len strnlen_ max_uidpwd enc_len est_base64_encod const char both_len both_b64 max_uidpwd )); enc_len est_log_err unabl encod basic auth valu &#34;); snprintf hdr hdr_len hdr_len author basic both_b64 break case auth_digest generat client nonc rand_byt client_random est_log_err rng failur generat nonc &#34;); forc hdr null string memzero_ hdr break est_hex_to_str ctx c_nonc client_random check see applic layer provid usernam password front configur retriev otherwis copi local buffer get readi ctx userid ctx password memzero_ user max_uidpwd memzero_ pwd max_uidpwd ctx ctx auth_mod user pwd els eok strncpy_ user max_uidpwd ctx userid max_uidpwd est_log_err invalid user provid &#34;); eok strncpy_ pwd max_uidpwd ctx password max_uidpwd est_log_err invalid user password provid &#34;); digest ctx uri user pwd digest null est_log_err error generat digest &#34;); forc hdr null string memzero_ hdr memzero_ ctx c_nonc max_nonc memzero_ user max_uidpwd memzero_ pwd max_uidpwd break snprintf hdr hdr_len hdr_len author digest usernam =\&#34;% \&#34;, realm =\&#34;% \&#34;, nonc =\&#34;% \&#34;, uri =\&#34;% \&#34;, cnonc =\&#34;% \&#34;, 00000001 qop =\&#34; auth \&#34;, respons =\&#34;% \&#34;\ user ctx realm ctx s_nonc uri ctx c_nonc digest memzero_ digest memzero_ ctx c_nonc max_nonc memzero_ user max_uidpwd memzero_ pwd max_uidpwd free digest break case auth_token est_log_info server request token base authent &#34;); memzero_ auth_credenti sizeof auth_credenti )); ctx auth_credentials_cb auth_credenti mode auth_token ctx auth_credentials_cb auth_credenti est_log_err attempt obtain token applic fail .&#34;); get credenti expect point null string generat header auth_credenti auth_token null est_log_err request token credenti applic provid .&#34;); token &#34;&#34;; els make sure token given long forc null caus auth failur server credenti provid max_auth_token_len strnlen_ auth_credenti auth_token max_auth_token_len est_log_err token provid larger max max_auth_token_len token &#34;&#34;; els token auth_credenti auth_token base64 encod combin string build http auth header memzero_ token_b64 max_auth_token_len token_len strnlen_ token max_auth_token_len enc_len est_base64_encod const char token token_len token_b64 max_auth_token_len enc_len est_log_err unabl encod bearer token auth valu &#34;); snprintf hdr hdr_len hdr_len author bearer token_b64 auth_credenti break default est_log_info http auth mode set send anonym request &#34;); break function use build http header cacert request flow paramet ctx est context hdr pointer buffer hold header static int est_ctx ctx char hdr int hdr_len snprintf hdr get http user agent connect close host accept */*\ est_path_prefix ctx uri_path_seg ?&#34;/&#34;:&#34;&#34;), ctx uri_path_seg ctx uri_path_seg :&#34;&#34;), est_get_cacert est_http_hdr_est_cli ctx est_serv ctx est_port_num hdr_len int strnlen_ hdr hdr_len est_log_warn cert header took maximum amount buffer )&#34;, return hdr_len function use build http header csr attribut request flow paramet ctx est context hdr pointer buffer hold header static int est_ctx ctx char hdr int hdr_len snprintf hdr get http user agent connect close host accept */*\ est_path_prefix ctx uri_path_seg ?&#34;/&#34;:&#34;&#34;), ctx uri_path_seg ctx uri_path_seg :&#34;&#34;), est_get_csrattr est_http_hdr_est_cli ctx est_serv ctx est_port_num ctx hdr hdr_len int strnlen_ hdr hdr_len est_log_warn csr attribut request header took maximum amount buffer )&#34;, return hdr_len function work csr attribut request flow paramet ctx est context ssl ssl context static int est_ctx ctx ssl ssl unsign char csrattr int csrattrs_len char http_data int hdr_len int read_siz write_s unsign char csr_attrs_buf null int assum defeat csrattr null csrattrs_len build http request alloc buffer header data termin charact build header data termin http_data malloc http_data null est_log_err unabl alloc memori http_data &#34;); return est_err_malloc hdr_len ctx http_data hdr_len est_log_err csr attribut http header could built correct &#34;); free http_data return termin http header snprintf http_data hdr_len hdr_len &#34;); hdr_len data sent ahead termin http request snprintf http_data hdr_len hdr_len &#34;); hdr_len send request server wait respons ctx last_http_status write_s ssl_write ssl http_data hdr_len write_s est_log_err tls write error &#34;); ossl_dump_ssl_error (); est_err_ssl_writ els est_log_info tls wrote byte attempt byte write_s hdr_len tri get respons server est_io_get_respons ctx ssl est_op_csrattr csr_attrs_buf read_siz switch case est_err_non csr_attrs_buf null csrattr csr_attrs_buf csrattrs_len read_siz break case est_err_auth_fail default est_log_err est request fail )&#34;, est_err_num_to_str )); csr_attrs_buf free csr_attrs_buf break free http_data return function use build http header simpl enrol flow paramet ctx est context hdr pointer buffer hold header pkcs10_len length buffer point hdr static int est_ctx ctx char hdr int pkcs10_len int hdr_len snprintf hdr post http user agent connect close host accept */*\ content type applic pkcs10 content length est_path_prefix ctx uri_path_seg ?&#34;/&#34;:&#34;&#34;), ctx uri_path_seg ctx uri_path_seg :&#34;&#34;), est_simple_enrol est_http_hdr_est_cli ctx est_serv ctx est_port_num pkcs10_len ctx hdr hdr_len int strnlen_ hdr hdr_len est_log_warn client enrol request header took maximum amount buffer )&#34;, return hdr_len function use build http header simpl enrol flow paramet ctx est context hdr pointer buffer hold header pkcs10_len length buffer point hdr static int est_ctx ctx char hdr int pkcs10_len int hdr_len snprintf hdr post http user agent connect close host accept */*\ content type applic pkcs10 content length est_path_prefix ctx uri_path_seg ?&#34;/&#34;:&#34;&#34;), ctx uri_path_seg ctx uri_path_seg :&#34;&#34;), est_simple_reenrol est_http_hdr_est_cli ctx est_serv ctx est_port_num pkcs10_len ctx hdr hdr_len int strnlen_ hdr hdr_len est_log_warn client reenrol request header took maximum amount buffer )&#34;, return hdr_len function send http request simpl enrol csr pkcs10 alreadi built point function simpli creat http header bodi put wire wait respons server copi respons buffer provid caller paramet ctx est context ssl ssl context bptr pointer contain pkcs10 csr pkcs7 pointer receiv pkcs7 respons pkcs7_len length pkcs7 respons reenrol set reenrol instead enrol int est_ctx ctx ssl ssl buf_mem bptr unsign char pkcs7 int pkcs7_len int reenrol char http_data int hdr_len int write_s unsign char enroll_buf null int enroll_buf_len int assum enrol fail set return length zero defens pkcs7_len build http request alloc buffer header data termin charact build header data termin http_data malloc http_data null est_log_err unabl alloc memori http_data &#34;); return est_err_malloc reenrol perform simpleenrol hdr_len ctx http_data int bptr length els perform simplereenrol hdr_len ctx http_data int bptr length hdr_len est_log_err enrol http header could built correct &#34;); free http_data return termin http header snprintf http_data hdr_len hdr_len &#34;); hdr_len build http bodi contain pkcs10 request memcpy_ http_data hdr_len bptr data rsize_t bptr length hdr_len bptr length termin http request snprintf http_data hdr_len hdr_len ,&#34;\ &#34;); hdr_len send request server wait respons ctx last_http_status write_s ssl_write ssl http_data hdr_len write_s est_log_err tls write error &#34;); ossl_dump_ssl_error (); est_err_ssl_writ els est_log_info tls wrote byte attempt byte write_s hdr_len tri get respons server est_io_get_respons ctx ssl est_op_simple_enrol enroll_buf enroll_buf_len switch case est_err_non enroll_buf_len est_log_err enrol buf zero byte length &#34;); break memcpy_ pkcs7 enroll_buf enroll_buf_len pkcs7_len enroll_buf_len break case est_err_auth_fail est_log_warn http auth failur &#34;); break default est_log_err est request fail )&#34;, est_err_num_to_str )); break free enroll_buf openssl_cleans http_data strnlen_ http_data )); free http_data http_data null return function saniti check x509 prior attempt convert x509 csr reenrol oper return est_error code static est_error x509 cert make sure cert sign cert signatur est_log_err certif provid contain signatur .&#34;); return est_err_bad_x509 make sure signatur length invalid cert signatur length est_log_err certif provid contain invalid signatur length .&#34;); return est_err_bad_x509 return est_err_non function use clear challeng password attribut x509 csr use http authent use enrol process valu chang client send second http request contain http author valu sinc csr reus initi secondari request need clear valu csr submit secondari request static void x509_req csr int pos x509_attribut attr challeng password may csr never happen defens pos look valu csr pos csr nid_pkcs9_challeng password pos found delet attr x509_req_delete_attr csr pos attr doc open ssl show use x509_req_delete_attr assum need free attribut appear good exampl use api x509_attribute_fre attr function work convert x509_req base64 encod der format specifi est rfc convert proper format routin forward request server check respons save cert local context retriev later applic layer static est_error est_ctx ctx ssl ssl x509_req req int pkcs7_len int reenrol est_error est_err_non bio p10out null b64 buf_mem bptr null unsign char recv_buf unsign char new_cert_buf int new_cert_buf_len grab pkcs10 pem encod data b64 bio_new bio_f_base64 ()); b64 est_log_err bio_new fail &#34;); ossl_dump_ssl_error (); return est_err_malloc p10out bio_new bio_s_mem ()); p10out est_log_err bio_new fail &#34;); ossl_dump_ssl_error (); return est_err_malloc p10out bio_push b64 p10out encod use der asn set modifi flag x509_req open ssl keep cach copi der encod data case set flag tell open ssl run asn encod rather use cach copi req req_info enc modifi i2d_x509_req_bio p10out req void bio_flush p10out bio_get_mem_ptr p10out bptr get buffer place entir respons server recv_buf malloc est_ca_max recv_buf null est_log_err fail alloc buffer server respons &#34;); return est_err_malloc new_cert_buf recv_buf new_cert_buf_len send pkcs10 http request est server ctx ssl bptr new_cert_buf new_cert_buf_len reenrol switch case est_err_non make sure even though got success return code actual receiv someth new_cert_buf_len est_log_err buffer contain newli enrol client certif zero byte length &#34;); break resiz buffer hold retriev client certif link ctx get rid http hdr extra space back ctx enrolled_client_cert null free ctx enrolled_client_cert ctx enrolled_client_cert malloc new_cert_buf_len ctx enrolled_client_cert null est_log_err unabl alloc newli enrol client certif buffer &#34;); est_err_malloc break ctx enrolled_client_cert new_cert_buf_len memcpy_ ctx enrolled_client_cert new_cert_buf_len new_cert_buf new_cert_buf_len ctx new_cert_buf_len pass back length newli enrol cert pkcs7_len ctx est_log_info newli enrol client certif ctx enrolled_client_cert est_log_info length ctx break case est_err_auth_fail est_log_info http author fail request auth mode ctx auth_mod break default est_log_err est enrol fail error code )&#34;, est_err_num_to_str )); break recv_buf free recv_buf bio_free_al p10out return function implement simpl enrol flow sign csr provid send csr est server retriev pkcs7 respons paramet ctx est context ssl ssl context use est session csr pointer x509_req object contain pkcs10 csr pkcs7_len pointer integ length reciev pkcs7 respons place priv_key pointer privat key use sign csr reenrol set reenrol instead enrol return est_error static est_error est_ctx ctx ssl ssl x509_req csr int pkcs7_len evp_pkey priv_key int reenrol est_error est_err_non char tls_uid int ossl_rv make sure remov csr proceed csr get valu tls session emb csr requir ctx csr_pop_requir ctx client_force_pop est_log_info client includ challeng password csr &#34;); tls_uid est_get_tls_uid ssl tls_uid ossl_rv csr nid_pkcs9_challeng password mbstring_asc unsign char tls_uid free tls_uid ossl_rv est_log_err unabl set x509 challeng password attribut &#34;); ossl_dump_ssl_error (); return est_err_x509_attr els est_log_err unabl obtain tls uid &#34;); return sign csr ossl_rv csr priv_key ctx signing_digest ossl_rv est_log_err unabl sign x509 cert request &#34;); ossl_dump_ssl_error (); return est_err_x509_sign ctx ssl csr pkcs7_len reenrol return est_client_enroll_cn function implement simpl enrol flow use privat key generat csr pkcs10 request send request est server retriev pkcs7 respons user function simpli provid common name valu place pkcs10 csr simplifi interfac none csr attribut specifi param ctx est context param ssl ssl context use est session param pointer common name place x509 request param pkcs7_len pointer integ length reciev pkcs7 respons place param pkey new client public key enrol return est_error static est_error est_client_enroll_cn est_ctx ctx ssl ssl char int pkcs7_len evp_pkey pkey x509_req pkcs10 null est_error est_err_non char tls_uid ctx return est_err_no_ctx attempt creat pkcs10 certif request get tls uid case need popul tls_uid est_get_tls_uid ssl tls_uid est_generate_pkcs10 ctx tls_uid pkey pkcs10 free tls_uid els est_log_err unabl obtain tls uid &#34;); est_err_non ctx ssl pkcs10 pkcs7_len pkcs10 x509_req_fre pkcs10 return follow function taken url content incorpor portion lib hostcheck lib rawstr portabl consist toupper rememb ebcdic use toupper behavior alter current local static char char switch case return case return case return case return case return case return case return case return case return case return case return case return case return case return case return case return case return case return case return case return case return case return case return case return case return case return return follow function taken url curl_raw_equ raw case insensit string meant local independ compar string know safe see http :// daniel haxx blog 2008 strcasecmp turkish explan function necessari function capabl compar case insensit even non ascii static int const char first const char second first second first second get loop soon match break first ++; second ++; comparison possibl make sure loop skip one string reach zero must return success match return first second )); follow function taken url curl_raw_equ raw case insensit string meant local independ compar string know safe see http :// daniel haxx blog 2008 strcasecmp turkish explan function necessari function capabl compar case insensit even non ascii static int const char first const char second size_t max first second max first second break max --; first ++; second ++; max return equal far return first second )); follow function taken url curl_raw_equ raw case insensit string meant local independ compar string know safe see http :// daniel haxx blog 2008 strcasecmp turkish explan function necessari function capabl compar case insensit even non ascii static int est_client_hostmatch const char hostnam const char pattern const char pattern_label_end pattern_wildcard hostname_label_end int wildcard_en size_t prefixlen suffixlen struct in_addr ignor struct sockaddr_in6 si6 pattern_wildcard strchr pattern *&#39;); pattern_wildcard null return pattern hostnam host_match host_nomatch detect address hostnam fail match inet_pton af_inet hostnam ignor return host_nomatch els inet_pton af_inet6 hostnam si6 sin6_addr return host_nomatch requir least dot pattern avoid wide wildcard match wildcard_en pattern_label_end strchr pattern .&#39;); pattern_label_end null strchr pattern_label_end .&#39;) null pattern_wildcard pattern_label_end pattern --&#34;, wildcard_en wildcard_en return pattern hostnam host_match host_nomatch hostname_label_end strchr hostnam .&#39;); hostname_label_end null pattern_label_end hostname_label_end return host_nomatch wildcard must match least one charact left label hostnam least larg left label pattern hostname_label_end hostnam pattern_label_end pattern return host_nomatch prefixlen pattern_wildcard pattern suffixlen pattern_label_end pattern_wildcard return pattern hostnam prefixlen pattern_wildcard hostname_label_end suffixlen suffixlen host_match host_nomatch follow function taken url fqdn check server cert static int const char match_pattern const char hostnam saniti check input match_pattern match_pattern hostnam hostnam return trival case hostnam match_pattern return est_client_hostmatch hostnam match_pattern host_match return return function taken url adapt est url file name lib ssluse function verifyhost quot rfc2818 section server ident subject alt name extens type nsname present must use ident otherwis specif common name field subject field certif must use although use common name exist practic deprec certif author encourag use nsname instead match perform use match rule specifi rfc2459 one ident given type present certif one nsname name match one set consid accept name may contain wildcard charact consid match singl domain name compon compon fragment com match foo com bar foo com com match foo com bar com case uri specifi address rather hostnam case paddress subject alt name must present certif must exact match uri static est_error char hostnam x509 server_cert int match altern match yet mean match mean mismatch size_t addrlen stack_of general_nam altnam struct in6_addr addr_v6 struct in_addr addr_v4 int addr_is_v4 int addr_is_v6 est_error res est_err_non int errno_t safec_rc int numalt int int diff const general_nam check const char altptr size_t altlen unsign char nulstr unsign char peer_cn x509_name name asn1_str tmp attempt resolv host name address inet_pton af_inet hostnam addr_v4 addr_is_v4 addrlen sizeof struct in_addr els tri see hostnam resolv address inet_pton af_inet6 hostnam addr_v6 addr_is_v6 addrlen sizeof struct in6_addr get list altern name altnam x509_get_ext_d2i server_cert nid_subject_alt_nam null null altnam get amount altern rfc2459 claim must least one depend ... numalt sk_general_name_num altnam est_log_info found subject altern name numalt loop altern none match numalt match ++) get handl altern name number check sk_general_name_valu altnam get data length altptr char asn1_string_data check ia5 altlen size_t asn1_string_length check ia5 switch check type case gen_dn name pattern comparison est_log_info check fqdn san altptr open ssl man page explicit say general cannot assum data return asn1_string_data null termin contain embed null also actual format data depend actual string type exampl ia5str data ascii gisl research open ssl sourc check sourc patch alway termin ia5str altlen strnlen_ altptr true embed zero name string cannot match altptr hostnam match els match break case gen_ipadd address comparison compar altern address data chunk size server address psb complianc use safe librari memcmp_ addr_is_v4 safec_rc memcmp_ altptr altlen addr_v4 altlen diff safec_rc eok est_log_info memcmp_ error ipv4 address safec_rc els addr_is_v6 safec_rc memcmp_ altptr altlen addr_v6 altlen diff safec_rc eok est_log_info memcmp_ error ipv6 address safec_rc els never get ... forc match diff addr_is_v4 altlen addrlen diff match els addr_is_v6 altlen addrlen diff match els match break general_names_fre altnam match altern name match server hostnam est_log_info subject alt name match hostnam els match altern name field exist match must fail est_log_info subject alt name match hostnam res els look last occurr common name distinguish one get signific one follow done bug nulstr unsign char *)&#34;&#34;; peer_cn nulstr name x509_get_subject_nam server_cert name name nid_common name name entri convert string use comparison support bmpstring utf8 etc tmp x509_name_get_entri name )); open ssl earlier asn1_string_to_utf8 fail input alreadi utf encod check case copi raw string manual avoid problem code made condit futur open ssl fix work around brought alexi carvalho tmp asn1_string_typ tmp v_asn1_utf8str asn1_string_length tmp peer_cn malloc peer_cn safec_rc memcpy_ peer_cn asn1_string_data tmp safec_rc eok est_log_info memcpy_ error asn1 string safec_rc peer_cn els utf8 name asn1_string_to_utf8 peer_cn tmp peer_cn strnlen_ char peer_cn termin zero end string cannot match return failur est_log_warn ssl illeg cert name field &#34;); res peer_cn nulstr peer_cn null els convert peer_cn utf8 utf8 current support first releas libest curlcod data peer_cn strlen peer_cn )); call failf unsuccess free peer_cn return endif res est_err_non error alreadi detect pass els peer_cn est_log_warn ssl unabl obtain common name peer certif &#34;); res els const char peer_cn hostnam est_log_warn ssl fqdn hostnam mismatch server certif match target host name peer_cn hostnam res els est_log_info common name match )&#34;, peer_cn peer_cn free peer_cn return res routin check fqdn server certif configur server name use establish tcp connect est server requir per section est spec note fqdn check defin rfc 6125 look cmc extend key usag extens server cert restrict allow fqdn mismatch cmc present current way determin use explicit trust anchor allow addit flexibl static est_error est_ctx ctx ssl ssl x509 cert est_error cert ssl_get_peer_certif ssl cert ctx est_serv cert x509_free cert return els cert ctx enable_srp est_log_info peer certif skip fqdn check sinc srp enabl .&#34;); return est_err_non els est_log_warn unabl perform fqdn check peer certif .&#34;); return function open tcp socket establish tls session est server call est_client_init (). paramet ctx pointer est context client session ssl pointer ssl context structur return ssl context creat reurn est_err_non success est_error est_client_connect est_ctx ctx ssl ssl bio tcp ssl_ctx s_ctx est_error est_err_non ifndef win32 int sock els socket sock invalid_socket endif int int oval int ssl_connect_ret tcw_err_t tcw_err tcw_opts_t tcw_opt ctx return est_err_no_ctx s_ctx ctx ssl_ctx establish connect proxi applic ctx use_proxi tcw_opt proxy_proto ctx proxy_proto tcw_opt proxy_host ctx proxy_serv tcw_opt proxy_port ctx proxy_port ctx proxy_usernam ctx proxy_password ctx proxy_auth tcw_opt proxy_usernam ctx proxy_usernam tcw_opt proxy_password ctx proxy_password tcw_opt proxy_auth initi ctx proxy_auth tcw_opt proxy_auth ctx proxy_auth tcw_opt proxy_auth els tcw_opt proxy_proto est_client_proxy_non tcw_err tcw_connect ctx tcw_sock tcw_opt ctx est_serv ctx est_port_num sock tcw_err tcw_err_resolv est_log_err unabl lookup hostnam .&#34;, ctx est_serv return est_err_ip_getaddr tcw_err tcw_ok est_log_err unabl connect est server ctx est_serv return est_err_ip_connect enabl tcp keep aliv setsockopt sock sol_socket so_keepal char *)&amp; oval sizeof oval )); tcw_close ctx tcw_sock sock sock_invalid est_log_err unabl connect est server address ctx est_serv return est_err_ip_connect pass socket bio interfac open ssl use creat tls session tcp bio_new_socket sock bio_noclos tcp null est_log_err error creat socket &#34;); tcw_close ctx tcw_sock sock sock_invalid ossl_dump_ssl_error (); return est_err_ip_connect (!(* ssl ssl_new s_ctx ))) est_log_err error creat tls context &#34;); ossl_dump_ssl_error (); bio_free_al tcp tcw_close ctx tcw_sock sock sock_invalid return est_err_ssl_new need set est ctx exdata ssl session context retriev per session basi ssl_set_ex_data ssl ctx set est server name ssl context sent server name extens client hello ssl ctx est_serv ssl_set_bio ssl tcp tcp ctx sess ssl_set_sess ssl ctx sess ssl_connect_ret ssl_connect ssl est_log_err error connect tls context ssl_get_error ssl ssl_connect_ret )); ossl_dump_ssl_error (); tcw_close ctx tcw_sock sock sock_invalid est_err_ssl_connect els ctx tcw_sock_connect establish tls session est server need verifi fqdn server cert match server name use establish connect section est spec est_err_non ctx ssl host name match shut tunnel bail ctx ssl est_log_warn est server name match fqdn server certif .&#34;); return function close tls session under socket paramet ssl pointer ssl context set connect est server void est_ctx ctx ssl ssl ssl_session new_sess (!* ssl return first disconnect get session cach away use session resumpt ctx sess ctx sess ssl_get1_sess ssl els first time disconnect see session chang offici obtain get1 call cach away new_sess ssl_get0_sess ssl new_sess ctx sess ctx sess ssl_get1_sess ssl ssl_shutdown ssl ssl_free ssl ssl null ctx tcw_sock_connect tcw_close ctx tcw_sock ctx tcw_sock_connect function work cacert request flow paramet ctx est context ssl ssl context ca_certs_len pointer unsign int hold length return cert static int est_ctx ctx ssl ssl int ca_certs_len char http_data int hdr_len int write_s int unsign char ca_certs_buf null int ca_certs_buf_len build http request alloc buffer header data termin charact build header data termin http_data malloc http_data null est_log_err unabl alloc memori http_data &#34;); return est_err_malloc hdr_len ctx http_data termin http header snprintf http_data hdr_len hdr_len ,&#34;\ &#34;); hdr_len data sent ahead termin http request snprintf http_data hdr_len hdr_len &#34;); hdr_len send request server wait respons ctx last_http_status write_s ssl_write ssl http_data hdr_len write_s est_log_err tls write error &#34;); ossl_dump_ssl_error (); est_err_ssl_writ els est_log_info tls wrote byte attempt byte write_s hdr_len tri get respons server est_io_get_respons ctx ssl est_op_cacert ca_certs_buf ca_certs_buf_len switch case est_err_non make sure even though got success return code actual receiv someth ca_certs_buf_len est_log_err retriev cert buf zero byte length &#34;); break ca_certs_buf_len est_ca_max est_log_err retriev cert buf larger maximum allow &#34;); break resiz buffer hold retriev cert link ctx get rid http hdr extra space back ctx retrieved_ca_cert null free ctx retrieved_ca_cert ctx retrieved_ca_cert malloc ca_certs_buf_len ctx retrieved_ca_cert null est_log_err unabl alloc cert buffer &#34;); est_err_malloc break ctx retrieved_ca_cert ca_certs_buf_len memcpy_ ctx retrieved_ca_cert ca_certs_buf_len ca_certs_buf ca_certs_buf_len ctx ca_certs_buf_len verifi return cert chain verify_cacert_resp ctx ctx retrieved_ca_cert ctx est_err_non est_log_err return cacert chain invalid &#34;); free ctx retrieved_ca_cert ctx retrieved_ca_cert null ctx ca_certs_len ctx break pass back length retriev cert buffer ca_certs_len ctx est_log_info cacert buf ctx retrieved_ca_cert est_log_info cacert length ctx break case est_err_auth_fail est_log_err http auth failur &#34;); break case est_log_info http request fail retri resp &#34;); break default est_log_err est request fail )&#34;, est_err_num_to_str )); break http_data free http_data ca_certs_buf free ca_certs_buf return function work cacert request flow paramet ctx est context ssl ssl context ca_certs_len pointer unsign int hold length return cert est_error est_ctx ctx const char uid const char pwd userid must password vice versa userid still empti string cannot null password uid null pwd null est_log_err user provid password &#34;); return uid null pwd null est_log_err password provid user &#34;); return uid pwd set basic digest authent uid null eok strncpy_ ctx userid max_uidpwd uid max_uidpwd est_log_err invalid user provid &#34;); return eok strncpy_ ctx password max_uidpwd pwd max_uidpwd est_log_err invalid password provid &#34;); return return est_err_non /*! brief perform simpl enrol request est server use pkcs10 csr provid applic layer param ctx pointer est context param csr pointer pkcs10 csr data defin open ssl x509_req param pkcs7_len pointer integ hold length pkcs7 buffer param priv_key pointer privat key use sign csr null return est_error connect est server establish ssl tls connect est server configur previous call est_client_set_serv (), send simpl enrol request applic layer must provid pkcs10 csr enrol priv_key argument given null csr need sign privat key howev csr must contain everyth els requir includ public key privat key provid alreadi sign csr est librari sign csr enrol respons store est context length pass back applic pkcs7_len paramt function applic alloc correct size buffer call retriev new client certif context unless csr alreadi sign indic null priv_key applic must provid pointer privat key use sign csr requir est librari event est server request proof possess valu includ csr est librari automat includ proof posess valu sign csr awar x509_req data pass function must valid pass corrupt csr data may result system crash lib est util open ssl asn decod logic read x509_req data open ssl perform safeti check x509_req data pars applic read extern generat pem der encod csr data pleas use helper function convert pem der csr valid x509_req pointer est_error est_ctx ctx x509_req csr int pkcs7_len evp_pkey priv_key est_error ssl ssl null ctx return est_err_no_ctx csr return est_err_no_csr ctx est_client_initi return establish tls session est server est_client_connect ctx ssl est_err_non goto err priv_key ctx ssl csr pkcs7_len priv_key els ctx ssl csr pkcs7_len ctx ssl est_err_auth_fail ctx auth_mod auth_digest ctx auth_mod auth_bas ctx auth_mod auth_token https digest mode requir use md5 make sure fip mode use md5 ctx auth_mod auth_digest fips_mod ())){ est_log_err http digest auth allow fip mode &#34;); est_err_bad_mod goto err tri one time digest auth est_log_info http auth fail tri digest basic paramet &#34;); est_client_connect ctx ssl est_err_non est_log_err connect fail second attempt basic digest paramet &#34;); goto err priv_key ctx ssl csr pkcs7_len priv_key els ctx ssl csr pkcs7_len est_err_non est_log_err enrol fail second attempt basic digest authent &#34;); ctx ssl err ssl ssl_shutdown ssl ssl_free ssl return /*! brief est_client_enrol perform simpl enrol request est server param ctx pointer est context param pointer common name valu use enrol request param pkcs7_len pointer integ hold length pkcs7 buffer param new_public_key pointer evp_pkey structur hold client key pair use simpl enrol request public key includ certif sign request csr sent server privat key use sign request return est_error est_client_enrol connect est server build simpl enrol request use common name pass establish ssl tls connect est server configur previous call est_client_set_serv (), send simpl enrol request respons store est context length pass back applic pkcs7_len paramet function applic alloc correct size buffer call retriev new client certif context est_error est_client_enrol est_ctx ctx char int pkcs7_len evp_pkey new_public_key est_error ssl ssl null ctx return est_err_no_ctx new_public_key return est_err_no_key ctx est_client_initi return est_client_connect ctx ssl est_err_non goto err est_client_enroll_cn ctx ssl pkcs7_len new_public_key ctx ssl est_err_auth_fail ctx auth_mod auth_digest ctx auth_mod auth_bas ctx auth_mod auth_token https digest mode requir use md5 make sure fip mode use md5 ctx auth_mod auth_digest fips_mod ())){ est_log_err http digest auth allow fip mode &#34;); est_err_bad_mod goto err tri one time digest auth est_log_info http auth fail tri basic digest token paramet &#34;); est_client_connect ctx ssl est_err_non est_log_err connect fail second attempt basic digest token paramet &#34;); goto err est_client_enroll_cn ctx ssl pkcs7_len new_public_key est_err_non est_log_err enrol fail second attempt basic digest authent &#34;); attempt token mode second time server respond error attribut log ctx token_error ctx token_error_desc est_log_err token auth mode fail server provid error inform error error descript ctx token_error ctx token_error_desc ctx token_error ctx token_error_desc ctx ssl ctx auth_mod auth_non err ssl ssl_shutdown ssl ssl_free ssl return /*! brief perform full sequenc est oper enrol new certif use trust messag flow param ctx pointer est context param pointer common name valu use enrol request param pkcs7_len pointer integ hold length pkcs7 certif return param ca_cert_len pointer integ hold length buffer hold new trust certif param new_public_key pointer evp_pkey structur hold client key pair use simpl enrol request public key includ certif sign request csr sent server privat key use sign request return est_error connect est server retriev latest trust certifict server retriev csr attribut server send simpl enrol request server provis new certif conveni function equival invok follow three function order est_client_enrol function take common name entiti identifi use csr addit x509 attribut extens requir est server enforc presenc csr attribut function use provis certif function use addit x509 attribut includ enrol request provis respons store est context length pass back applic pkcs7_len paramet function applic alloc correct size buffer call retriev new client certif context provis respons also includ latest copi trust certif est server persist local applic futur use ca_cert_len argument contain length certic retriev invok (). est_error est_ctx ctx char int pkcs7_len int ca_cert_len evp_pkey new_public_key est_error unsign char new_ta_p7 unsign char new_ta_pem unsign char attr_data null int attr_len int new_ta_len ctx return est_err_no_ctx make sure non null pointer length pkcs7_len ca_cert_len return ctx est_client_initi return new_public_key return est_err_no_key first get latest trust anchor cert server ctx ca_cert_len est_err_non return new_ta_p7 malloc ca_cert_len new_ta_p7 null est_log_err unabl alloc cert buffer &#34;); est_err_malloc return ctx new_ta_p7 est_err_non free new_ta_p7 return cert base64 der encod need convert pem new_ta_len new_ta_p7 ca_cert_len new_ta_pem free new_ta_p7 new_ta_len return est_err_pem_read new trust anchor pem encod let load current est context futur est oper use new trust anchor ctx trusted_certs_stor null x509_store_fre ctx trusted_certs_stor ctx new_ta_pem new_ta_len free new_ta_pem est_err_non return sinc reset trust store mark client context initi ctx est_client_initi next need get csr attribut allow lib est know challeng password need includ csr ctx attr_data attr_len est_err_non est_log_err unabl get csr attribut provis new certif &#34;); return final attempt enrol new certif use common name provid applic est_client_enrol ctx pkcs7_len new_public_key return /*! brief est_client_reenrol perform enrol request est server use exist x509 certif param ctx pointer est context param cert pointer x509 certif defin open ssl x509 param pkcs7_len pointer integ hold length pkcs7 buffer param priv_key pointer privat key use sign csr return est_error est_client_reenrol connect est server establish ssl tls connect est server configur previous call est_client_set_serv (), send enrol request applic layer must provid x509 certif enrol certif previous enrol applic also need provid privat key associ public key x509 certif privat key requir sign csr generat x509 certif enrol respons store est context length pass back applic pkcs7_len paramt function applic alloc correct size buffer call retriev new client certif context applic must provid pointer privat key use sign csr requir est librari event est server request proof possess valu includ csr est librari automat includ proof posess valu sign csr awar public key subject name x509 certif includ enrol request sent est server respons appli x509 extens issu renew certif est_error est_client_reenrol est_ctx ctx x509 cert int pkcs7_len evp_pkey priv_key x509_req req est_error ssl ssl null int ossl_rv ctx return est_err_no_ctx cert return est_err_no_cert priv_key return est_err_no_key ctx est_client_initi return check x509 given cert est_err_non return check privat key match public key cert cert priv_key return convert exist certif csr copi subject name cert new csr pass null privat key paramet sign csr later req x509_to_x509_req cert null ctx signing_digest req est_log_err x509 csr convers fail .&#34;); ossl_dump_ssl_error (); return est_err_no_csr copi x509 extens old certif csr may may retain behavior depend polici use open ssl test set copy_extens set config file copyal retain extens csr issu new cert cert cert_info cert cert_info extens ossl_rv x509_req_add_extens req cert cert_info extens ossl_rv est_log_warn fail copi x509 extens csr new certif may contain extens present old certif .&#34;); establish tls session est server est_client_connect ctx ssl est_err_non goto err send enrol request ctx ssl req pkcs7_len priv_key ctx ssl est_err_auth_fail ctx auth_mod auth_digest ctx auth_mod auth_bas ctx auth_mod auth_token https digest mode requir use md5 make sure fip mode use md5 ctx auth_mod auth_digest fips_mod ())){ est_log_err http digest auth allow fip mode &#34;); est_err_bad_mod goto err tri one time digest auth est_log_info http auth fail tri digest basic paramet &#34;); est_client_connect ctx ssl est_err_non est_log_err connect fail second attempt basic digest paramet &#34;); goto err ctx ssl req pkcs7_len priv_key est_err_non est_log_err reenrol fail second attempt basic digest authent &#34;); attempt token mode second time server respond error attribut log ctx token_error ctx token_error_desc est_log_err token auth mode fail server provid error inform error error descript ctx token_error ctx token_error_desc ctx token_error ctx token_error_desc ctx ssl err ssl ssl_shutdown ssl ssl_free ssl x509_req_fre req return /*! brief pass back client certif previous obtain est server call est_client_enrol (). param ctx pointer est context param pointer common name valu use enrol request param pkcs7 pointer pointer point buffer contain newli enrol client certif return est_error copi previous obtain client certif est context applic buffer client certif copi context remov context est_error est_ctx ctx unsign char pkcs7 ctx return est_err_no_ctx ctx est_client_initi return pkcs7 null est_log_err est client simpl enrol invalid paramet &#34;); return ctx enrolled_client_cert null est_log_err client certif copi &#34;); return est_err_no_certif memzero_ pkcs7 ctx memcpy_ pkcs7 ctx ctx enrolled_client_cert ctx copi context hand free free ctx enrolled_client_cert ctx enrolled_client_cert null ctx return est_err_non /*! brief perform cacert get request est server param ctx pointer est context param ca_certs_len pointer integ hold length cert buffer return est_error connect est server build cert request send get cert request respons place buffer alloc maintain est client librari pointer buffer return call applic return cert base64 encod der format store null termin string buffer certif retriev est server client librari must reset retriev certif pass est client initi function explicit databas est_error est_ctx ctx int ca_certs_len est_error est_err_non ssl ssl null ctx return est_err_no_ctx ctx est_client_initi return ca_certs_len null est_log_err est client get cacert invalid paramet &#34;); return est_client_connect ctx ssl est_err_non ssl ssl_shutdown ssl ssl_free ssl return ctx ssl ca_certs_len ctx ssl ssl ssl_shutdown ssl ssl_free ssl return /*! brief copi previous retriev certif applic buffer param ctx pointer current est context param ca_cert pointer buffer retriev certif copi return est_error copi recent retriev certif est server certif copi applic buffer point ca_cert remov est clietn context certif retriev applic est client librari must reset reset perform certif retriev call pass est client initi function explicit databas est_error est_ctx ctx unsign char ca_cert ctx return est_err_no_ctx ctx est_client_initi return ca_cert null est_log_err est client get cacert invalid paramet &#34;); return ctx retrieved_ca_cert null est_log_err certif copi &#34;); return est_err_no_certif memzero_ ca_cert ctx memcpy_ ca_cert ctx ctx retrieved_ca_cert ctx cert obtain client lib need reset ctx est_client_initi return est_err_non /*! brief perform csr attribut request est server param ctx pointer est context client session param csr_data pointer buffer hold return csr attribut param csr_len pointer integ hold length csr attribut buffer return est_error connect est server send csr attribut request server save away return csr attribut data disconnect est server est_error est_ctx ctx unsign char csr_data int csr_len int new_csr_len pop_requir ssl ssl null unsign char new_csr_data ctx return est_err_no_ctx csr_data return csr_len return assum defeat csr_data null csr_len connect est server est_client_connect ctx ssl est_err_non ssl ssl_shutdown ssl ssl_free ssl return free current attribut cach ctx retrieved_csrattr free ctx retrieved_csrattr ctx retrieved_csrattr null ctx ctx ctx retrieved_csrattr null send http request est server ctx ssl new_csr_data new_csr_len ctx ssl est_err_non est_log_err csr request fail error code )&#34;, est_err_num_to_str )); new_csr_data free new_csr_data ssl ssl_shutdown ssl ssl_free ssl return ssl ssl_shutdown ssl ssl_free ssl new_csr_data null est_log_info csr attribut null &#34;); return est_err_non alloc new memori prior pars sure null termin ctx retrieved_csrattr malloc new_csr_len ctx retrieved_csrattr free new_csr_data return est_err_malloc ctx new_csr_len memcpy_ ctx retrieved_csrattr new_csr_len new_csr_data new_csr_len ctx retrieved_csrattr new_csr_len est_log_info csr attribut ctx ctx retrieved_csrattr free new_csr_data make sure data valid char ctx retrieved_csrattr ctx pop_requir est_err_non free ctx retrieved_csrattr ctx retrieved_csrattr null ctx els csr_data ctx retrieved_csrattr csr_len ctx ctx csr_pop_requir pop_requir return /*! brief use applic enabl tls srp transport use place tradit tls tls srp allow secur transport 509 certif avail trust anchor avail param ctx est context obtain est_client_init call param strength specifi srp strength use param uid char buffer contain user use srp user name param pwd char buffer contain passowrd use srp password function allow applic enabl tls srp cipher suit anoth form tls could use est client 509 certif identifi est server also use est client trust anchor avail authent est server ident est server must support tls srp use api function must invok est_client_init prior issu est command string paramet null termin string return est_error est_error est_ctx ctx int strength char uid char pwd x509_store store int ctx null est_log_err null context pass &#34;); return est_err_no_ctx ctx ssl_ctx null est_log_err ssl context initi &#34;); return est_err_no_ssl_ctx strength est_srp_strength_min est_log_err srp strength must greater est_srp_strength_min return uid null est_log_err srp user must provid &#34;); return pwd null est_log_err srp password must provid &#34;); return ctx enable_srp enabl srp cipher suit srp enabl use exclus check trust anchor configur enabl dss rsa auth cipher suit store ctx ssl_ctx store store obj sk_x509_object_num store obj est_log_info enabl ssl srp cipher suit rsa dss &#34;); ctx ssl_ctx els est_log_info enabl ssl srp cipher suit rsa dss &#34;); ctx ssl_ctx est_log_err fail set ssl srp cipher suit &#34;); ossl_dump_ssl_error (); return set srp user name password ctx ssl_ctx uid est_log_err unabl set srp usernam &#34;); ossl_dump_ssl_error (); return est_err_unknown ctx ssl_ctx pwd est_log_err unabl set srp password &#34;); ossl_dump_ssl_error (); return est_err_unknown ctx ssl_ctx strength est_log_info tls srp enabl &#34;); return est_err_non /*! brief est_client_set_auth use applic set authent paramet use param ctx est context obtain est_client_init call param uid char buffer contain user use basic digest base authent param pwd char buffer contain passowrd use basic digest base authent param client_cert_raw char buffer contain client applic certif param pkey_raw privat key use client cert param pkey_len length buffer hold privat key function allow applic provid inform requir authent est client est server call made accept request get cert user provid password must also provid applic may pass privat key pkey_raw pkey_len use sign request server otherwis basic digest base authent perform tls session request privat key pass must contain privat key match public key contain client_cert paramet string paramet null termin string return est_error error null est_error est_client_set_auth est_ctx ctx const char uid const char pwd x509 client_cert evp_pkey private_key est_error est_err_non ctx null est_log_err null context pass &#34;); return est_err_no_ctx ctx uid pwd est_err_non return ctx auth_mod auth_non cach away client cert associ privat key get load ssl context use ctx client_key private_key ctx client_cert client_cert load client cert avail ctx client_cert ctx client_key ctx ssl_ctx ctx client_cert ctx client_key est_log_err unabl load local certif privat key &#34;); return els est_log_warn use client certif tls session http basic digest auth use .&#34;); return est_err_non /*! brief use applic regist callback function param ctx est context obtain est_client_init call param auth_credentials_cb function pointer applic layer callback regist callback function use est client librari obtain authent credenti applic provid authent credenti initi avail userid password use http basic authent process request est client librari call applic callback event authent credenti request est server callback function definit must match follow function prototyp int auth_credentials_cb est_http_auth_hdr auth_credenti auth_credenti pointer est_http_auth_hdr structur structur provid est librari callback function fill specif credenti request credenti valu must pass format sent server est client librari perform reformat credenti ownership memori hold credenti valu transfer applic layer est librari applic layer return valu est librari allow est librari free memori soon done use valu return valu callback must one follow valu callback abl provid request credenti callback could provid request credenti auth_credentials_cb paramet set null reset callback function string paramet null termin string return est_error est_err_non success est_err_no_ctx est_error est_ctx ctx auth_credentials_cb callback ctx null est_log_err null context pass &#34;); return est_err_no_ctx ctx auth_credentials_cb callback return est_err_non /*! brief use applic reduc overhead tcp tls layer client know est server use http basic authent param ctx pointer est context client session normal lib est send anonym http request initi request est server function allow applic improv perform send http basic auth header initi request sent est server elimin need server send http authent challen respons elimin round trip est client server function call immedi invok est_client_set_auth (). precaut taken applic ensur hint enabl known est server configur http basic authent est server configur http digest authent enabl hint caus est transact fail return est_error est_err_non success est_error est_ctx ctx ctx null est_log_err null context pass &#34;); return est_err_no_ctx ctx auth_mod auth_bas return est_err_non /*! brief est_client_init use applic creat context est librari context use invok function client api param ca_chain requir char buffer contain certif raw byte data use authent est server param ca_chain_len length ca_chain char buffer param cert_format defin format certif pass instanti est client librari current valu accept est_cert_format_pem param cert_verify_cb pointer function est client applic call receiv server ident certif fail verif ssl code function take input two paramet pointer x509 structur contain server certif integ valu set open ssl defin error certif callback function return server ident certif reject valu approv function allow applic initi est client context applic must provid local certif ca_chain ca_chain_len use client oper certif provid must format specifi cert_format paramet current pem encod certif support length paramet certif ca_chain_len use der format certif pass certif may contain crl entri use authent certif receiv server return est_ctx error null est_ctx est_client_init unsign char ca_chain int ca_chain_len est_cert_format cert_format int cert_verify_cb x509 int est_ctx ctx volatil int len int ifdef win32 int result initi winsock result wsastartup makeword wsa data result est_log_err wsastartup fail result return endif cert_format est_cert_format_pem est_log_err pem encod certif support .&#34;); return null chain pass check length valu pass match calcul length buffer verifi length valu correct buffer proper null termin ca_chain len int strnlen_ char ca_chain est_ca_max len ca_chain_len est_log_err length ca_chain match pass ca_chain_len &#34;); return null ctx malloc sizeof est_ctx )); ctx est_log_err unabl alloc memori est context &#34;); return null memzero_ ctx sizeof est_ctx )); ctx est_mod est_client load local certif memori retain futur use use cacert request ctx ca_chain ca_chain_len est_log_err fail load trust certif store &#34;); est_destroy ctx return null ctx est_err_non est_log_err fail initi ssl context certifici privat key pass &#34;); est_destroy ctx return null save away client callback function allow manual verif server ident certif ctx cert_verify_cb set default valu socket read timeout ctx read_timeout use sha 256 default hash algorithm sign csr chang applic use function ctx signing_digest evp_sha256 (); ctx retry_after_delay ctx retry_after_d ctx est_client_initi return ctx /*! brief est_client_init use applic creat context est librari context use invok function client api param ca_chain requir char buffer contain certif raw byte data use authent est server param ca_chain_len length ca_chain char buffer param cert_format defin format certif pass instanti est client librari current valu accept est_cert_format_pem param cert_verify_cb pointer function est client applic call receiv server ident certif fail verif ssl code function take input two paramet pointer x509 structur contain server certif integ valu set open ssl defin error certif callback function return server ident certif reject valu approv function allow applic initi est client context applic must provid local certif ca_chain ca_chain_len use client oper certif provid must format specifi cert_format paramet current pem encod certif support length paramet certif ca_chain_len use der format certif pass certif may contain crl entri use authent certif receiv server return est_ctx error null static est_error char path_seg uri parser state state uri uri parsed_uri int uriparse_rc uri path segment cur_seg null char cur_seg_str null est_oper oper char canned_uri est_uri_max_len build can uri pass uripars librari caus incom path segment correct spot within uri get valid main issu possibl use path segment becom theme delimit memzero_ canned_uri est_uri_max_len strcpy_ canned_uri est_uri_max_len &#34;/. well known est /&#34;); strcat_ canned_uri est_uri_max_len path_seg state uri parsed_uri uriparse_rc uri pars uri state canned_uri uriparse_rc uri_success uri free uri member state uri return cur_seg parsed_uri path head cur_seg null est_log_err valid path segment suppli string &#34;); uri free uri member state uri return cur_seg cur_seg next next cur_seg_str char cur_seg text first oper est_parse_oper cur_seg_str look see oper path come next cacert csrattr simpleenrol simplereenrol oper occur path segment string problem oper est_op_max est_log_err path segment string contain oper valu path segment pass cur_seg_str uri free uri member state uri return look see multipl segment char cur_seg next null cur_seg text last est_log_err path segment string contain multipl path segment path segment &#34;); uri free uri member state uri return uri free uri member state uri return est_err_non /*! brief est_client_set_serv call applic layer specifi address port est server must call est_client_init prior issu est command param ctx pointer est context client session param server name est server connect ascii string repres name server limit 254 charact param port tcp port est server connect param path_seg string contain option path segment uri use set null return est_error est_err_non success est_err_no_ctx null valu pass est context null valu pass est server name server name string long call est_client_init invalid port number input less zero greater 65535 est_client_set_serv error check input paramet store hostnam port number est context est_error est_client_set_serv est_ctx ctx const char server int port char path_seg ctx return est_err_no_ctx ctx est_client_initi return server null return port port 65535 return eok strncpy_ ctx est_serv server return ctx est_port_num port ifdef have_uripars int path_segment_len est_error path_seg null path_seg return make sure long path_segment_len strnlen_ path_seg path_segment_len return valid incom path segment string path_seg est_err_non est_log_err path segment fail valid .&#34;); return valid store away context est_store_path_seg ctx path_seg path_segment_len est_err_non est_log_err fail store uri path segment .&#34;); return els uripars support cannot support path segment pass path_seg est_log_err use path segment support build lib est .&#34;); return endif return est_err_non /*! brief est_client_set_proxi call applic layer specifi proxi est server must call est_client_init prior issu est command param ctx pointer est context client session param proxy_proto proxi protocol param proxy_serv name proxi server connect ascii string repres name server limit 254 charact param port tcp port proxi server connect param proxy_auth proxi authent method param usernam usernam use authent proxi param password password use authent proxi return est_error est_err_non success est_err_no_ctx null valu pass est context null valu pass est server name server name string long port num proxi server invalid call est_client_init null valu pass either usernam password usernam password long client proxi mode support built libcurl support invalid proxi protocol specifi est_client_set_proxi error check input paramet store proxi inform est context note http proxi tunnel support lib est server mode configur lib est client mode communic lib est server mode must specifi proxi protocol est_error est_client_set_proxi est_ctx ctx proxy_proto const char proxy_serv unsign short int proxy_port unsign int proxy_auth const char usernam const char password ifdef have_libcurl ctx return est_err_no_ctx ctx est_client_initi return proxy_serv null proxy_serv return strnlen_ proxy_serv return ctx proxy_serv eok strncpy_ ctx proxy_serv sizeof ctx proxy_serv proxy_serv sizeof ctx proxy_serv ))) return proxy_port proxy_port 65535 return ctx proxy_port proxy_port proxy_proto proxy_proto return ctx proxy_proto proxy_proto proxy_auth proxy_auth )))) return ctx proxy_auth proxy_auth usernam password proxy_auth max_uidpwd strnlen_ usernam max_uidpwd return usernam return ctx proxy_usernam eok strncpy_ ctx proxy_usernam sizeof ctx proxy_usernam usernam sizeof ctx proxy_usernam ))) return max_uidpwd strnlen_ password max_uidpwd return password return ctx proxy_password eok strncpy_ ctx proxy_password sizeof ctx proxy_password password sizeof ctx proxy_password ))) return ctx proxy_auth proxy_auth ctx use_proxi return est_err_non els est librari built support libcurl client proxi mode support est_log_err client proxi mode requir libest built libcurl .&#34;); return endif /*! brief call applic layer specifi hash algorithm use sign pkcs10 csr enrol oper must call est_client_init prior issu est command param ctx pointer est context client session param nid nid valu defin open ssl header file obj_mac desir digest use sign return est_error est_err_non success est_err_no_ctx null valu pass est context unsupport nid provid lib est support sha1 sha224 sha256 sha384 sha512 digest sha256 default digest use sign need invok function unless anoth digest desir support nid valu nid_sha1 nid_sha224 nid_sha256 nid_sha384 nid_sha512 est_error est_ctx ctx int nid ctx return est_err_no_ctx switch nid case nid_sha512 ctx signing_digest evp_sha512 (); break case nid_sha384 ctx signing_digest evp_sha384 (); break case nid_sha256 ctx signing_digest evp_sha256 (); break case nid_sha224 ctx signing_digest evp_sha224 (); break case nid_sha1 ctx signing_digest evp_sha1 (); break default return break return est_err_non /*! brief copi retri valu store client context param ctx pointer current est context param retry_delay pointer integ retri delay sec valu copi server sent retri delay second format pass valu zero param retry_tim pointer time_t retri time date valu copi server sent retri time date string format string convert time_t valu pass paramet valu set server sent time date string respons otherwis valu set zero return est_error respons receiv est server header check see server includ retri header indic request current cannot process retri http header includ receiv respons server delay valu save context est error code given applic request indic client must retri request later time valu specifi server one two basic format string version integ valu repres number second client must wait retri request string contain date time client retri request date time string format specifi rfc 2616 second delay valu sent convert integ save est context date time string valu sent convert time_t valu save est context applic must call obtain amount time wait retri request copi current retri valu client context return applic one two return valu set non zero valu note process retri valu time date format current support est client alway return retri delay valu second est_error est_ctx ctx int retry_delay time_t retry_tim ctx return est_err_no_ctx ctx est_client_initi return retry_delay ctx retry_after_delay ctx retry_after_delay retry_tim ctx retry_after_d ctx retry_after_d return est_err_non /*! brief est_client_force_pop use applic enabl proof possess generat est client prove est client sent csr server proxi possess privat key use sign csr bind tls session csr note csr attribut configur server requir check need call function enabl enabl automat scenario csr attribut request server proxi param ctx pointer est context function may call time return est_error est_error est_client_force_pop est_ctx ctx ctx est_log_err null context &#34;); return est_err_no_ctx ctx client_force_pop return est_err_non /*! brief use applic disabl proof possess generat est client pleas see documen est_client_force_pop inform proof possess check param ctx pointer est context function may call time return est_error est_error est_ctx ctx ctx est_log_err null context &#34;); return est_err_no_ctx ctx client_force_pop return est_err_non /*! brief use applic set timeout valu read oper est client send request est server attempt read respons server timeout valu limit amount time client wait respons param ctx pointer est context param timeout integ valu repres read timeout second minimum valu maximum valu return est_error est_error est_ctx ctx int timeout ctx est_log_err null context &#34;); return est_err_no_ctx timeout timeout est_log_err invalid read timeout valu pass timeout return ctx read_timeout timeout return est_err_non /*! brief use applic get http status code return est server recent oper param ctx pointer est context call est oper enrol oper function return recent http status code receiv est server normal status 200 would return est server indic success oper howev oper fail reason http status code may use understand reason failur instanc est server would return http status 401 est client author pleas see rfc 2616 descript various http status code return int valu repres http status code null null est context provid int est_ctx ctx ctx return ctx last_http_status els return»
  342. </pre>
  343. </div>
  344. </div>
  345. <div class="output_area">
  346. <div class="output_subarea output_text output_error">
  347. <pre>
  348. <span class="ansi-red-fg">---------------------------------------------------------------------------</span>
  349. <span class="ansi-red-fg">NameError</span> Traceback (most recent call last)
  350. <span class="ansi-green-fg">&lt;ipython-input-17-7cfd8b123cee&gt;</span> in <span class="ansi-cyan-fg">&lt;module&gt;</span>
  351. <span class="ansi-green-intense-fg ansi-bold"> 1</span> print<span class="ansi-blue-fg">(</span><span class="ansi-blue-fg">&#39;Document ({}): «{}»\n&#39;</span><span class="ansi-blue-fg">.</span>format<span class="ansi-blue-fg">(</span>doc_id<span class="ansi-blue-fg">,</span> <span class="ansi-blue-fg">&#39; &#39;</span><span class="ansi-blue-fg">.</span>join<span class="ansi-blue-fg">(</span>train_corpus<span class="ansi-blue-fg">[</span>doc_id<span class="ansi-blue-fg">]</span><span class="ansi-blue-fg">.</span>words<span class="ansi-blue-fg">)</span><span class="ansi-blue-fg">)</span><span class="ansi-blue-fg">)</span>
  352. <span class="ansi-green-fg">----&gt; 2</span><span class="ansi-red-fg"> </span>print<span class="ansi-blue-fg">(</span><span class="ansi-blue-fg">u&#39;SIMILAR/DISSIMILAR DOCS PER MODEL %s:\n&#39;</span> <span class="ansi-blue-fg">%</span> model<span class="ansi-blue-fg">)</span>
  353. <span class="ansi-green-intense-fg ansi-bold"> 3</span> <span class="ansi-green-fg">for</span> label<span class="ansi-blue-fg">,</span> index <span class="ansi-green-fg">in</span> <span class="ansi-blue-fg">[</span><span class="ansi-blue-fg">(</span><span class="ansi-blue-fg">&#39;MOST&#39;</span><span class="ansi-blue-fg">,</span> <span class="ansi-cyan-fg">0</span><span class="ansi-blue-fg">)</span><span class="ansi-blue-fg">,</span> <span class="ansi-blue-fg">(</span><span class="ansi-blue-fg">&#39;SECOND-MOST&#39;</span><span class="ansi-blue-fg">,</span> <span class="ansi-cyan-fg">1</span><span class="ansi-blue-fg">)</span><span class="ansi-blue-fg">,</span> <span class="ansi-blue-fg">(</span><span class="ansi-blue-fg">&#39;MEDIAN&#39;</span><span class="ansi-blue-fg">,</span> len<span class="ansi-blue-fg">(</span>sims<span class="ansi-blue-fg">)</span><span class="ansi-blue-fg">//</span><span class="ansi-cyan-fg">2</span><span class="ansi-blue-fg">)</span><span class="ansi-blue-fg">,</span> <span class="ansi-blue-fg">(</span><span class="ansi-blue-fg">&#39;LEAST&#39;</span><span class="ansi-blue-fg">,</span> len<span class="ansi-blue-fg">(</span>sims<span class="ansi-blue-fg">)</span> <span class="ansi-blue-fg">-</span> <span class="ansi-cyan-fg">1</span><span class="ansi-blue-fg">)</span><span class="ansi-blue-fg">]</span><span class="ansi-blue-fg">:</span>
  354. <span class="ansi-green-intense-fg ansi-bold"> 4</span> print<span class="ansi-blue-fg">(</span><span class="ansi-blue-fg">u&#39;%s %s: «%s»\n&#39;</span> <span class="ansi-blue-fg">%</span> <span class="ansi-blue-fg">(</span>label<span class="ansi-blue-fg">,</span> sims<span class="ansi-blue-fg">[</span>index<span class="ansi-blue-fg">]</span><span class="ansi-blue-fg">,</span> <span class="ansi-blue-fg">&#39; &#39;</span><span class="ansi-blue-fg">.</span>join<span class="ansi-blue-fg">(</span>train_corpus<span class="ansi-blue-fg">[</span>sims<span class="ansi-blue-fg">[</span>index<span class="ansi-blue-fg">]</span><span class="ansi-blue-fg">[</span><span class="ansi-cyan-fg">0</span><span class="ansi-blue-fg">]</span><span class="ansi-blue-fg">]</span><span class="ansi-blue-fg">.</span>words<span class="ansi-blue-fg">)</span><span class="ansi-blue-fg">)</span><span class="ansi-blue-fg">)</span>
  355. <span class="ansi-red-fg">NameError</span>: name &#39;model&#39; is not defined</pre>
  356. </div>
  357. </div>
  358. </div>
  359. </div>
  360. </div>
  361. <div class="cell border-box-sizing code_cell rendered">
  362. <div class="input">
  363. <div class="inner_cell">
  364. <div class="input_area">
  365. <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#Pick a random artifact from the corpus and infer a vector from the model</span>
  366. <span class="n">doc_id</span> <span class="o">=</span> <span class="n">r</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">train_corpus</span><span class="p">)</span> <span class="o">-</span><span class="mi">1</span> <span class="p">)</span>
  367. <span class="c1"># Compare and print the second-most-similar document</span>
  368. <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Train Document (</span><span class="si">{}</span><span class="s1">): «</span><span class="si">{}</span><span class="s1">»</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">doc_id</span><span class="p">,</span> <span class="s1">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">train_corpus</span><span class="p">[</span><span class="n">doc_id</span><span class="p">]</span><span class="o">.</span><span class="n">words</span><span class="p">)))</span>
  369. <span class="n">sim_id</span> <span class="o">=</span> <span class="n">second_ranks</span><span class="p">[</span><span class="n">doc_id</span><span class="p">]</span>
  370. <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Similar Document </span><span class="si">{}</span><span class="s1">: «</span><span class="si">{}</span><span class="s1">»</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">sim_id</span><span class="p">,</span> <span class="s1">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">train_corpus</span><span class="p">[</span><span class="n">sim_id</span><span class="p">[</span><span class="mi">0</span><span class="p">]]</span><span class="o">.</span><span class="n">words</span><span class="p">)))</span>
  371. </pre></div>
  372. </div>
  373. </div>
  374. </div>
  375. <div class="output_wrapper">
  376. <div class="output">
  377. <div class="output_area">
  378. <div class="output_subarea output_stream output_stdout output_text">
  379. <pre>Train Document (12): «unit test user stori proxi csr attribut novemb copyright cisco system inc right reserv includ stdio ifndef win includ unistd endif includ est includ curl curl includ curl util includ test util includ server includ proxi includ openssl ssl ifdef cunit includ cunit basic includ cunit autom endif static unsign char cacert null static int cacert len defin server port defin proxi port ifndef win32 defin us895_cacert est cacert crt defin us895_trusted_cert trustedcert crt defin server_ut_cacert est cacert crt defin server_ut_pubkey &#34;./ defin us895_server_ip 127 defin us895_cacert est cacert crt defin us895_trust_cert trustedcert crt defin us895_server_certkey est privat estservercertandkey pem els defin us895_cacert est cacert crt defin us895_trusted_cert trustedcert crt defin server_ut_cacert est cacert crt defin server_ut_pubkey defin us895_server_ip 127 defin us895_cacert est cacert crt defin us895_trust_cert trustedcert crt defin us895_server_certkey est privat estservercertandkey pem endif defin test_attr_pop mas gcsq gsib3dqejbw ==\ defin test_attr_nopop mhew laydi cmsuga4g3aw ydi eexl qyxjz zsbtrvqg yxmg mi45otku yxrh bglghkg bzqmeag igcssk mccaebcz oinw mzugfyc2ug u0vuigfz idiu otk5lj zgf0yqyhkw ybaqebfg ==\ defin test_attr_nopoppop mhww laydi cmsuga4g3aw ydi eexl qyxjz zsbtrvqg yxmg mi45otku yxrh bglghkg bzqmeag igcssk mccaebcz oinw mzugfyc2ug u0vuigfz idiu otk5lj zgf0yqyhkw ybaqebfg yjko zihvc naqk defin test_attr_popad mhww laydi cmsuga4g3aw ydi eexl qyxjz zsbtrvqg yxmg mi45otku yxrh bglghkg bzqmeag igcssk mccaebcz oinw mzugfyc2ug u0vuigfz idiu otk5lj zgf0yqyhkw ybaqebfg yjko zihvc naqk defin test_attr1 mcygbi gaqebarygcsq gsib3dqejbw yfk4eeacigcwcgsafl qcag ==\ defin test_attr2 maa defin test_attr7 ==\ defin test_attr2_pop mas gcsq gsib3dqejbw ==\ defin test_attr8 mathisi bad gcsq gsib3dqejbw ==\ defin test_attr3 migsmfg ga4g3aj frexl qyxjz zsbtrvqg yxmg mi45otku yxrh exl qyxjz zsbtrvqg yxmg mi45otku yxrh exl qyxjz zsbtrvqg yxmg mi45otku ncbk yxrh bgkqhki g9w0bcqcw ydi bmrs tgvbhcn ifnfvcbhci ljk5os4x igrhd gegbi gaqebari defin test_attr4_122 mhow laydi cmsuga4g3aw ydi eexl qyxjz zsbtrvqg yxmg mi45otku yxrh bglghkg bzqmeag igcssk mccaebcz oinw mzugfyc2ug u0vuigfz idiu otk5lj zgf0yqyhkw ybaqebfg yhkw ybaqebfg ==\ defin test_attr4_122pop migfmcw ga4g3aj oinw mga4g3bbmzugfyc2ug u0vuigfz idiu otk5lj jamdagg baqsw ydi bmrs tgvbhcn ifnfvcbhci ljk5os4x igrhd gegbi gaqebarygbi gaqebarygcsq gsib3dqejbw ==\ defin test_attr5_117 mhuw ydi cmsaga4g3aw ydi eex rqyxjz zsbtrvqg yxmg mi45otku yjyiziawudbaicbgkr jamdagg baqsw ydi bmrs tgvbhcn ifnfvcbhci ljk5os4x igrhd gegbi gaqebarygbi gaqebari defin test_attr5_117pop migamcc ga4g3aj oinw mga4g3bbmuugfyc2ug u0vuigfz idiu otk5lj igcwcgsafl qcag yjki qdaw iiaqelmciga4g3ateb exl qyxjz zsbtrvqg yxmg mi45otku msbk yxrh bgcr ebaqewbgcr ebaqewbgkqhki g9w0bcqc defin test_attr6_116 mhqw ydi cmsaga4g3aw ydi eex rqyxjz zsbtrvqg yxmg mi45otku yjyiziawudbaicbgkr jamdagg baqsw iqydi bmro tgfbhcn ifnfvcbhci ljk5os4x igrhd ayhkw ybaqebfg yhkw ybaqebfg ==\ defin test_attr_244 mih1mgqga4g3aj oinw mga4g3bbnrugfyc2ug u0vuigfz idiu otk5lj mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw bglghkg bzqmeag igcssk mccaebcz oinw ugfyc2ug u0vuigfz idiu otk5lj zgf0ysax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otbh q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey qgbys gaqebarygbi gaqebari defin test_attr_245 mih2mgqga4g3aj oinw mga4g3bbnrugfyc2ug u0vuigfz idiu otk5lj mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw bglghkg bzqmeag igcssk mccaebcz oinw ugfyc2ug u0vuigfz idiu otk5lj zgf0ysax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otbh q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1bgcr ebaqewbgcr ebaqew defin test_attr_250 mih7mgqga4g3aj oinw mga4g3bbnrugfyc2ug u0vuigfz idiu otk5lj mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw bglghkg bzqmeag igcssk mccaebcz oinw zbni ugfyc2ug u0vuigfz idiu otk5lj zgf0ysax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otbh q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1mtiz ndugbi gaqebarygbi gaqebari defin test_attr_250pop miibbj oinw xqydi dbg oinw qtuvbhcn ifnfvcbhci ljk5os4i idey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz jamdagg baqswaw ydi bmwqtyl bhcn ifnfvcbhci ljk5os4x igrhd geg mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw ywix m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0ntey q1bgcr ebaqewbgcr ebaqewbgkqhki g9w0bcqc defin test_all_attr mihtmigbbg oinw ixeg icap8ga4g3aw ydi ecg eceh m0nty3odkw qujdrevgex rqyxjz zsbtrvqg yxmg mi45otku qfmtiz nduubtey q1fg m0nro fmtiz nduc faaaadeaaaay aaaamw aaadqaaaa1hgo amqay admanaa1bglghkg bzqmeag igcssk mccaebcz oinw mzugfyc2ug u0vuigfz idiu otk5lj zgf0yqyhkw ybaqebfg yhkw ybaqebfg ebaa ==\ defin test_1024_nopop miid dcca2mga4g3aj gca1o ga4g3aw ydi eeiox m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtisztey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdax m0nty3odkw m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otaw mtiz ndu2nzg5mbjl mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mdey q1njc4otasztey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdax m0nty3odkw m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otaw mtiz ndu2nzg5mbjl mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mdey q1njc4otasztey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdax m0nty3odkw e1fqyxjz zsbtrvqg yxmg mi45otku m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otagcwcgsafl qcag yjki qdaw iiaqelmg ga4g3atfk e2jqyxjz zsbtrvqg yxmg mi45otku msbk yxrh idey q1njc4otax m0nty3odkw mtiz ndu2nzg5mgfi mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndux m0nqyhkw ybaqebfg yhkw ybaqebfg ==\ defin test_1025_nopop miid tcca2qga4g3aj gca1 ga4g3aw ydi eeisx m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otaw mtiz ndu2nzg5mbjl mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mdey q1njc4otasztey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdax m0nty3odkw m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otaw mtiz ndu2nzg5mbjl mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mdey q1njc4otasztey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdax m0nty3odkw m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otaw mtiz ndu2nzg5mbnrugfyc2ug u0vuigfz idiu otk5lj mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw bglghkg bzqmeag igcssk mccaebcz oinw zbni ugfyc2ug u0vuigfz idiu otk5lj zgf0ysax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otbh q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1mtiz ndugbi gaqebarygbi gaqebari defin test_1024_pop miiebz cca2mga4g3aj gca1o ga4g3aw ydi eeiox m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtisztey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdax m0nty3odkw m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otaw mtiz ndu2nzg5mbjl mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mdey q1njc4otasztey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdax m0nty3odkw m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otaw mtiz ndu2nzg5mbjl mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mdey q1njc4otasztey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdax m0nty3odkw e1fqyxjz zsbtrvqg yxmg mi45otku m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otagcwcgsafl qcag yjki qdaw iiaqelmg ga4g3atfk e2jqyxjz zsbtrvqg yxmg mi45otku msbk yxrh idey q1njc4otax m0nty3odkw mtiz ndu2nzg5mgfi mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndux m0nqyhkw ybaqebfg yhkw ybaqebfg yjko zihvc naqk defin test_long_attr miienz cca54ga4g3aj gca5uga4g3aw ydi eem m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otaw mtiz ndu2nzg5mbjl mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mdey q1njc4otasztey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdax m0nty3odkw m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otaw mtiz ndu2nzg5mbjl mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mdey q1njc4otasztey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdax m0nty3odkw m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otaw mtiz ndu2nzg5mbjl mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mdey q1njc4otatuvbhcn ifnfvcbhci ljk5os4i idey q1njc4otax m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw mtiz jamdagg baqswaw ydi bmwqtyl bhcn ifnfvcbhci ljk5os4x igrhd geg mtiz ndu2nzg5mdey q1njc4otax m0nty3odkw ywix m0nty3odkw mtiz ndu2nzg5mdey q1njc4otax m0ntey q1bgcr ebaqewbgcr ebaqew defin est_ut_max_cmd_len 255 extern est_ctx ectx static void us895_clean void static int us895_start_serv int manual_enrol int nid int st_start us895_server_port us895_server_certkey us895_server_certkey us895 test realm us895_cacert us895_trusted_cert est exampl cnf manual_enrol nid return next start est proxi act st_proxy_start us895_proxy_port us895_server_certkey us895_server_certkey us895 test realm us895_cacert us895_trusted_cert estus estpwd 127 us895_server_port nid sleep return routin call cunit initi test suit use alloc data open resourc requir test case static int us895_init_suit void int char cmd est_ut_max_cmd_len printf start est server csr attribut unit test &#34;); gen keypair use est proxi test snprintf cmd est_ut_max_cmd_len openssl ecparam name prime256v1 genkey server_ut_pubkey printf (&#34;% cmd system cmd read certif cacerts_len read_binary_fil us895_cacert cacert cacerts_len return start server test need talk server us895_clean (); start instanc est server us895_start_serv return routin call cunit uniniti test suit use dealloc data close resourc use test case static int us895_destroy_suit void st_stop (); st_proxy_stop (); sleep return static unsign char int csr_len char path_seg void app_data unsign char csr_data csr_len strlen test_attr7 csr_data malloc csr_len strncpi char csr_data test_attr7 csr_len csr_data csr_len return csr_data static unsign char int csr_len char path_seg void app_data unsign char csr_data csr_len strlen test_attr8 csr_data malloc csr_len strncpi char csr_data test_attr8 csr_len csr_data csr_len return csr_data static unsign char int csr_len char path_seg void app_data unsign char csr_data csr_len strlen test_long_attr csr_data malloc csr_len strncpi char csr_data test_long_attr csr_len csr_data csr_len return csr_data static unsign char int csr_len char path_seg void app_data unsign char csr_data csr_len strlen test_attr1 csr_data malloc csr_len strncpi char csr_data test_attr1 csr_len csr_data csr_len return csr_data static unsign char int csr_len char path_seg void app_data unsign char csr_data csr_len strlen test_attr_nopop csr_data malloc csr_len strncpi char csr_data test_attr_nopop csr_len csr_data csr_len return csr_data static unsign char int csr_len char path_seg void app_data unsign char csr_data csr_len csr_data null return csr_data callback function pass est_proxy_init static int x509 cur_cert int openssl_cert_error bio bio_err bio_err bio_new_fp stderr bio_noclos int approv print specif cert printf open ssl est server cert verif fail follow error openssl_cert_error __function__ openssl_cert_error openssl_cert_error )); printf fail cert &#34;); x509_print_fp stdout cur_cert next call print signatur use fingerprint fingerprint check anticip valu determin whether server cert approv x509_signature_print bio_err cur_cert sig_alg cur_cert signatur openssl_cert_error approv bio_fre bio_err return approv test1 exercis server side variat trigger static void us895_test1 void est_ctx ctx unsign char pkey null unsign char cacert null int cacerts_len est_error est_err_non evp_pkey priv_key int csr_len unsign char csr_data null sleep log_func_nm read certif cacerts_len read_binary_fil server_ut_cacert cacert cu_assert cacerts_len read privat key file priv_key read_private_key server_ut_pubkey priv_key null printf (&#34;\ error read privat key file server_ut_pubkey return ctx est_client_init cacert cacerts_len est_cert_format_pem cu_assert ctx null est_client_set_auth ctx &#34;&#34;, &#34;&#34;, null priv_key cu_assert est_err_non est_client_set_serv ctx us895_server_ip us895_proxy_port null clear callback est_set_csr_cb ectx null printf (&#34;\ unabl set est csr attribut callback abort !!!\ &#34;); exit clear csrattr ectx null cu_assert est_err_non get 204 data ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len cu_assert csr_data null real base64 string pass ectx test_attr_pop strlen test_attr_pop )); cu_assert est_err_non ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len strlen test_attr_pop )); cu_assert strncmp test_attr_pop const char csr_data csr_len est_set_csr_cb ectx printf (&#34;\ unabl set est csr attribut callback abort !!!\ &#34;); exit callback supersed init csrattr ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len est_set_csr_cb ectx printf (&#34;\ unabl set est csr attribut callback abort !!!\ &#34;); exit callback supersed init csrattr ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len est_set_csr_cb ectx printf (&#34;\ unabl set est csr attribut callback abort !!!\ &#34;); exit callback supersed init csrattr ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len est_set_csr_cb ectx printf (&#34;\ unabl set est csr attribut callback abort !!!\ &#34;); exit callback supersed init csrattr ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len strlen test_attr1 )); cu_assert strncmp test_attr1 const char csr_data csr_len clear csrattr ectx null cu_assert est_err_non ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len strlen test_attr1 )); cu_assert strncmp test_attr1 const char csr_data csr_len clear callback est_set_csr_cb ectx null printf (&#34;\ unabl set est csr attribut callback abort !!!\ &#34;); exit set smallest base64 size ectx test_attr2 strlen test_attr2 )); cu_assert est_err_non ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len strlen test_attr2 )); cu_assert strncmp test_attr2 const char csr_data csr_len ectx test_attr3 strlen test_attr3 )); cu_assert est_err_non ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len strlen test_attr3 )); cu_assert strncmp test_attr3 const char csr_data csr_len clear csrattr ectx null cu_assert est_err_non ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len ectx test_1024_nopop strlen test_1024_nopop )); cu_assert est_err_non ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len strlen test_1024_nopop )); cu_assert strncmp test_1024_nopop const char csr_data csr_len enabl test respons st_enable_pop (); ectx test_attr_pop strlen test_attr_pop )); cu_assert est_err_non ctx csr_data csr_len cu_assert est_err_non cu_assert csr_data null cu_assert csr_len cu_assert strncmp test_attr_pop const char csr_data csr_len ectx test_1024_nopop strlen test_1024_nopop )); cu_assert est_err_non ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len strlen test_1024_pop )); cu_assert strncmp test_1024_pop const char csr_data csr_len set size 122 ectx test_attr4_122 strlen test_attr4_122 )); cu_assert est_err_non ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len strlen test_attr4_122pop )); cu_assert strncmp test_attr4_122pop const char csr_data csr_len set size 117 ectx test_attr5_117 strlen test_attr5_117 )); cu_assert est_err_non ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len strlen test_attr5_117pop )); cu_assert strncmp test_attr5_117pop const char csr_data csr_len real base64 string need pass ectx test_attr_nopop strlen test_attr_nopop )); cu_assert est_err_non ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len strlen test_attr_nopoppop )); cu_assert strncmp test_attr_nopoppop const char csr_data csr_len real base64 string fail ectx us900 test1 cu_assert est_err_non ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len strlen test_attr_pop )); cu_assert strncmp test_attr_pop const char csr_data csr_len set smallest size ectx test_attr2 strlen test_attr2 )); cu_assert est_err_non ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len strlen test_attr2_pop )); cu_assert strncmp test_attr2_pop const char csr_data csr_len set size 116 ectx test_attr6_116 strlen test_attr6_116 )); cu_assert est_err_non ctx csr_data csr_len cu_assert est_err_non set size 244 ectx test_attr_244 strlen test_attr_244 )); cu_assert est_err_non ctx csr_data csr_len cu_assert est_err_non set size 245 ectx test_attr_245 strlen test_attr_245 )); cu_assert est_err_non ctx csr_data csr_len cu_assert est_err_non set size 250 ectx test_attr_250 strlen test_attr_250 )); cu_assert est_err_non ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len strlen test_attr_250pop )); cu_assert strncmp test_attr_250pop const char csr_data csr_len est_set_csr_cb ectx printf (&#34;\ unabl set est csr attribut callback abort !!!\ &#34;); exit ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len strlen test_attr1 )); cu_assert strncmp test_attr1 const char csr_data csr_len est_set_csr_cb ectx printf (&#34;\ unabl set est csr attribut callback abort !!!\ &#34;); exit ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len strlen test_attr_nopoppop )); cu_assert strncmp test_attr_nopoppop const char csr_data csr_len est_set_csr_cb ectx printf (&#34;\ unabl set est csr attribut callback abort !!!\ &#34;); exit ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len strlen test_attr2_pop )); cu_assert strncmp test_attr2_pop const char csr_data csr_len disabl st_disable_pop (); clear callback est_set_csr_cb ectx null printf (&#34;\ unabl set est csr attribut callback abort !!!\ &#34;); exit real base64 string pass ectx test_attr_nopop strlen test_attr_nopop )); cu_assert est_err_non ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len strlen test_attr_nopop )); cu_assert strncmp test_attr_nopop const char csr_data csr_len asn type support cisco ssl ectx test_all_attr strlen test_all_attr )); cu_assert est_err_non ctx csr_data csr_len cu_assert est_err_non cu_assert csr_len strlen test_all_attr )); cu_assert strncmp test_all_attr const char csr_data csr_len ctx est_destroy ctx cacert free cacert pkey free pkey main function set run test return cue_success success run anoth cunit error code failur int us895_add_suit void ifdef have_cunit cu_p suit suit null add suit registri suit cu_add_suit us895_proxy_csrattr us895_init_suit us895_destroy_suit null suit cu_cleanup_registri (); return cu_get_error (); add test suit null cu_add_test suit csr proxi attribut api1 us895_test1 ))) cu_cleanup_registri (); return cu_get_error (); return cue_success endif»
  380. Similar Document (21, 0.692012369632721): «requir csr attribut follow exampl valid csrattr exchang exchang est client authent use exist certif issu est server provid servic initi tls handshak ident enrol exampl handshak http get request get well known est csrattr http user agent curl linux gnu libcurl open zlib libidn librtmp host accept respons server provid suggest attribut appropri authent client exampl est server also includ two exampl attribut client would ignor unless attribut type known client http status content type applic csrattr content transfer encod base content length mhw gbys gaqebaryw ydi bmrs tgvbhcn ifnfvcbhci ljk igrhd geg csq gsib dqejbz oinw jqydi dbg oinw qtgvbhcn ifnfvcbhci ljk igrhd gegcssk mccaebcw yjyiziawudba»
  381. </pre>
  382. </div>
  383. </div>
  384. </div>
  385. </div>
  386. </div>
  387. <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
  388. <div class="text_cell_render border-box-sizing rendered_html">
  389. <h2 id="Testing-the-Model">Testing the Model<a class="anchor-link" href="#Testing-the-Model">&#182;</a></h2>
  390. </div>
  391. </div>
  392. </div>
  393. <div class="cell border-box-sizing code_cell rendered">
  394. <div class="input">
  395. <div class="inner_cell">
  396. <div class="input_area">
  397. <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Pick a random document from the test corpus and infer a vector from the model</span>
  398. <span class="n">doc_id</span> <span class="o">=</span> <span class="n">r</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">test_corpus</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
  399. <span class="n">inferred_vector</span> <span class="o">=</span> <span class="n">doc2vec_model</span><span class="o">.</span><span class="n">infer_vector</span><span class="p">(</span><span class="n">test_corpus</span><span class="p">[</span><span class="n">doc_id</span><span class="p">])</span>
  400. <span class="n">sims</span> <span class="o">=</span> <span class="n">doc2vec_model</span><span class="o">.</span><span class="n">docvecs</span><span class="o">.</span><span class="n">most_similar</span><span class="p">([</span><span class="n">inferred_vector</span><span class="p">],</span> <span class="n">topn</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">doc2vec_model</span><span class="o">.</span><span class="n">docvecs</span><span class="p">))</span>
  401. </pre></div>
  402. </div>
  403. </div>
  404. </div>
  405. </div>
  406. <div class="cell border-box-sizing code_cell rendered">
  407. <div class="input">
  408. <div class="inner_cell">
  409. <div class="input_area">
  410. <div class=" highlight hl-ipython3"><pre><span></span><span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Test Document (</span><span class="si">{}</span><span class="s1">): «</span><span class="si">{}</span><span class="s1">»</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">doc_id</span><span class="p">,</span> <span class="s1">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">test_corpus</span><span class="p">[</span><span class="n">doc_id</span><span class="p">][:</span><span class="mi">10</span><span class="p">])))</span>
  411. </pre></div>
  412. </div>
  413. </div>
  414. </div>
  415. <div class="output_wrapper">
  416. <div class="output">
  417. <div class="output_area">
  418. <div class="output_subarea output_stream output_stdout output_text">
  419. <pre>Test Document (4): «unit test user stori client cacert june copyright cisco system»
  420. </pre>
  421. </div>
  422. </div>
  423. </div>
  424. </div>
  425. </div>
  426. <div class="cell border-box-sizing code_cell rendered">
  427. <div class="input">
  428. <div class="inner_cell">
  429. <div class="input_area">
  430. <div class=" highlight hl-ipython3"><pre><span></span><span class="nb">print</span><span class="p">(</span><span class="sa">u</span><span class="s1">&#39;SIMILAR/DISSIMILAR DOCS PER MODEL </span><span class="si">%s</span><span class="s1">:</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">doc2vec_model</span><span class="p">)</span>
  431. <span class="k">for</span> <span class="n">label</span><span class="p">,</span> <span class="n">index</span> <span class="ow">in</span> <span class="p">[(</span><span class="s1">&#39;MOST&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;MEDIAN&#39;</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">sims</span><span class="p">)</span><span class="o">//</span><span class="mi">2</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;LEAST&#39;</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">sims</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)]:</span>
  432. <span class="nb">print</span><span class="p">(</span><span class="sa">u</span><span class="s1">&#39;</span><span class="si">%s</span><span class="s1"> </span><span class="si">%s</span><span class="s1">: «</span><span class="si">%s</span><span class="s1">»</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">label</span><span class="p">,</span> <span class="n">sims</span><span class="p">[</span><span class="n">index</span><span class="p">],</span> <span class="s1">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">train_corpus</span><span class="p">[</span><span class="n">sims</span><span class="p">[</span><span class="n">index</span><span class="p">][</span><span class="mi">0</span><span class="p">]]</span><span class="o">.</span><span class="n">words</span><span class="p">[:</span><span class="mi">10</span><span class="p">])))</span>
  433. </pre></div>
  434. </div>
  435. </div>
  436. </div>
  437. <div class="output_wrapper">
  438. <div class="output">
  439. <div class="output_area">
  440. <div class="output_subarea output_stream output_stdout output_text">
  441. <pre>SIMILAR/DISSIMILAR DOCS PER MODEL Doc2Vec(dm/m,d50,n5,w5,mc2,s0.001,t3):
  442. MOST (3, 0.8158812522888184): «unit test uri path segment support server april copyright cisco»
  443. MEDIAN (58, 0.34024176001548767): «requir distribut certif est client request copi current certif function»
  444. LEAST (67, -0.042235516011714935): «file est est public api enrol secur transport novemb copyright»
  445. </pre>
  446. </div>
  447. </div>
  448. </div>
  449. </div>
  450. </div>
  451. <div class="cell border-box-sizing code_cell rendered">
  452. <div class="input">
  453. <div class="inner_cell">
  454. <div class="input_area">
  455. <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Compare and print the most/median/least similar documents from the train corpus</span>
  456. <span class="n">train_corpus</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">words</span><span class="p">[:</span><span class="mi">10</span><span class="p">]</span>
  457. </pre></div>
  458. </div>
  459. </div>
  460. </div>
  461. <div class="output_wrapper">
  462. <div class="output">
  463. <div class="output_area">
  464. <div class="output_text output_subarea output_execute_result">
  465. <pre>[&#39;unit&#39;,
  466. &#39;test&#39;,
  467. &#39;user&#39;,
  468. &#39;stori&#39;,
  469. &#39;proxi&#39;,
  470. &#39;cacert&#39;,
  471. &#39;novemb&#39;,
  472. &#39;copyright&#39;,
  473. &#39;cisco&#39;,
  474. &#39;system&#39;]</pre>
  475. </div>
  476. </div>
  477. </div>
  478. </div>
  479. </div>
  480. <div class="cell border-box-sizing code_cell rendered">
  481. <div class="input">
  482. <div class="inner_cell">
  483. <div class="input_area">
  484. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">sims</span>
  485. </pre></div>
  486. </div>
  487. </div>
  488. </div>
  489. <div class="output_wrapper">
  490. <div class="output">
  491. <div class="output_area">
  492. <div class="output_text output_subarea output_execute_result">
  493. <pre>[(3, 0.8158812522888184),
  494. (0, 0.5824273824691772),
  495. (38, 0.529496431350708),
  496. (32, 0.5204856395721436),
  497. (68, 0.5187431573867798),
  498. (13, 0.5158644914627075),
  499. (55, 0.5089541077613831),
  500. (7, 0.5078519582748413),
  501. (12, 0.49339187145233154),
  502. (54, 0.4914425313472748),
  503. (41, 0.4846417307853699),
  504. (31, 0.48334723711013794),
  505. (2, 0.4753178060054779),
  506. (28, 0.4736562669277191),
  507. (50, 0.4709679186344147),
  508. (23, 0.46533653140068054),
  509. (49, 0.4650142788887024),
  510. (6, 0.45413604378700256),
  511. (21, 0.43835797905921936),
  512. (45, 0.42663583159446716),
  513. (44, 0.42608878016471863),
  514. (18, 0.42147570848464966),
  515. (1, 0.41947343945503235),
  516. (59, 0.4137580096721649),
  517. (48, 0.4106936454772949),
  518. (11, 0.4029121994972229),
  519. (16, 0.40119242668151855),
  520. (42, 0.38525792956352234),
  521. (65, 0.3822197914123535),
  522. (34, 0.38073045015335083),
  523. (47, 0.37991195917129517),
  524. (5, 0.3794174790382385),
  525. (36, 0.3775385022163391),
  526. (60, 0.35832998156547546),
  527. (52, 0.3570764362812042),
  528. (64, 0.35673457384109497),
  529. (40, 0.35238760709762573),
  530. (56, 0.34349822998046875),
  531. (20, 0.3431631028652191),
  532. (58, 0.34024176001548767),
  533. (37, 0.3385201692581177),
  534. (30, 0.3383578956127167),
  535. (46, 0.33675241470336914),
  536. (57, 0.33498823642730713),
  537. (29, 0.3345211446285248),
  538. (63, 0.32326894998550415),
  539. (62, 0.3230828046798706),
  540. (39, 0.32182279229164124),
  541. (33, 0.318660706281662),
  542. (25, 0.31691503524780273),
  543. (27, 0.3121291697025299),
  544. (61, 0.30975407361984253),
  545. (53, 0.30730244517326355),
  546. (17, 0.3067917823791504),
  547. (75, 0.3016238510608673),
  548. (35, 0.28721287846565247),
  549. (22, 0.28715237975120544),
  550. (43, 0.26885485649108887),
  551. (19, 0.26440972089767456),
  552. (24, 0.25276339054107666),
  553. (8, 0.24294692277908325),
  554. (9, 0.2424229383468628),
  555. (10, 0.23480480909347534),
  556. (26, 0.23210318386554718),
  557. (4, 0.21962890028953552),
  558. (51, 0.21598415076732635),
  559. (15, 0.19076091051101685),
  560. (14, 0.18992844223976135),
  561. (66, 0.1753726303577423),
  562. (72, 0.16653427481651306),
  563. (78, 0.15717019140720367),
  564. (71, 0.1361619532108307),
  565. (73, 0.12477464973926544),
  566. (69, 0.07686236500740051),
  567. (76, 0.07280685007572174),
  568. (74, 0.04432082176208496),
  569. (77, 0.031201716512441635),
  570. (70, -0.03568275272846222),
  571. (67, -0.042235516011714935)]</pre>
  572. </div>
  573. </div>
  574. </div>
  575. </div>
  576. </div>
  577. <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
  578. <div class="text_cell_render border-box-sizing rendered_html">
  579. <h2 id="Proximity-and-Visualization">Proximity and Visualization<a class="anchor-link" href="#Proximity-and-Visualization">&#182;</a></h2>
  580. </div>
  581. </div>
  582. </div>
  583. <div class="cell border-box-sizing code_cell rendered">
  584. <div class="input">
  585. <div class="inner_cell">
  586. <div class="input_area">
  587. <div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">reduce_dimensions_doc2vec</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="n">corpus_list</span><span class="p">,</span> <span class="n">num_dimensions</span><span class="o">=</span><span class="mi">2</span><span class="p">):</span>
  588. <span class="c1"># final num dimensions (2D, 3D, etc)</span>
  589. <span class="n">vectors</span> <span class="o">=</span> <span class="p">[]</span> <span class="c1"># positions in vector space</span>
  590. <span class="n">labels</span> <span class="o">=</span> <span class="p">[]</span> <span class="c1"># keep track of words to label our data again later</span>
  591. <span class="c1">#TODO Label corpus_list so that we can idetify the documents</span>
  592. <span class="k">for</span> <span class="n">artifact</span> <span class="ow">in</span> <span class="n">corpus_list</span><span class="p">:</span>
  593. <span class="n">inf</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">infer_vector</span><span class="p">(</span> <span class="n">artifact</span> <span class="p">,</span> <span class="n">steps</span><span class="o">=</span><span class="mi">200</span> <span class="p">)</span>
  594. <span class="n">vectors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">inf</span><span class="p">)</span>
  595. <span class="c1">#labels.append(word)</span>
  596. <span class="c1"># convert both lists into numpy vectors for reduction</span>
  597. <span class="n">vectors</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">vectors</span><span class="p">)</span>
  598. <span class="c1">#labels = np.asarray(labels)</span>
  599. <span class="c1"># reduce using t-SNE</span>
  600. <span class="n">vectors</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">vectors</span><span class="p">)</span>
  601. <span class="n">tsne</span> <span class="o">=</span> <span class="n">TSNE</span><span class="p">(</span><span class="n">n_components</span><span class="o">=</span><span class="n">num_dimensions</span><span class="p">,</span> <span class="n">random_state</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
  602. <span class="n">vectors</span> <span class="o">=</span> <span class="n">tsne</span><span class="o">.</span><span class="n">fit_transform</span><span class="p">(</span><span class="n">vectors</span><span class="p">)</span>
  603. <span class="n">x_vals</span> <span class="o">=</span> <span class="p">[</span><span class="n">v</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">vectors</span><span class="p">]</span>
  604. <span class="n">y_vals</span> <span class="o">=</span> <span class="p">[</span><span class="n">v</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">vectors</span><span class="p">]</span>
  605. <span class="k">return</span> <span class="n">x_vals</span><span class="p">,</span> <span class="n">y_vals</span><span class="p">,</span> <span class="n">labels</span>
  606. </pre></div>
  607. </div>
  608. </div>
  609. </div>
  610. </div>
  611. <div class="cell border-box-sizing code_cell rendered">
  612. <div class="input">
  613. <div class="inner_cell">
  614. <div class="input_area">
  615. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">vectors</span> <span class="o">=</span> <span class="p">[]</span> <span class="c1"># positions in vector space</span>
  616. </pre></div>
  617. </div>
  618. </div>
  619. </div>
  620. </div>
  621. <div class="cell border-box-sizing code_cell rendered">
  622. <div class="input">
  623. <div class="inner_cell">
  624. <div class="input_area">
  625. <div class=" highlight hl-ipython3"><pre><span></span><span class="k">for</span> <span class="n">artifact</span> <span class="ow">in</span> <span class="n">texts</span><span class="p">:</span>
  626. <span class="n">inf</span> <span class="o">=</span> <span class="n">doc2vec_model</span><span class="o">.</span><span class="n">infer_vector</span><span class="p">(</span> <span class="n">artifact</span> <span class="p">,</span> <span class="n">steps</span><span class="o">=</span><span class="mi">200</span> <span class="p">)</span>
  627. <span class="n">vectors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">inf</span><span class="p">)</span>
  628. </pre></div>
  629. </div>
  630. </div>
  631. </div>
  632. </div>
  633. <div class="cell border-box-sizing code_cell rendered">
  634. <div class="input">
  635. <div class="inner_cell">
  636. <div class="input_area">
  637. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">vectors</span>
  638. </pre></div>
  639. </div>
  640. </div>
  641. </div>
  642. <div class="output_wrapper">
  643. <div class="output">
  644. <div class="output_area">
  645. <div class="output_text output_subarea output_execute_result">
  646. <pre>[array([ -1.1465187 , -0.6769659 , -3.9466546 , -6.537429 ,
  647. -3.8264825 , 12.494371 , -5.766705 , -1.0662086 ,
  648. 1.3832403 , -1.912242 , -1.4875673 , 10.58467 ,
  649. 3.686105 , 3.558232 , -4.604556 , -1.3376732 ,
  650. -0.5743203 , -8.368489 , 3.4940586 , 2.4422183 ,
  651. 0.5074329 , -5.1088495 , -5.163845 , -0.4432285 ,
  652. 4.0761046 , -12.123232 , -7.4725723 , 2.9386153 ,
  653. 5.944546 , -13.662391 , -3.0842416 , -1.0733452 ,
  654. -1.6143372 , 0.9102877 , 3.1954427 , -3.509083 ,
  655. -7.058819 , -1.234161 , 8.203302 , 4.1657586 ,
  656. -4.8018246 , -6.889636 , 1.4879539 , -1.5300335 ,
  657. 1.4753006 , 6.5450616 , 1.9208316 , -3.8650882 ,
  658. 2.8737607 , -0.62818646], dtype=float32),
  659. array([-7.990206 , -3.1529071 , -2.1322663 , 0.22888356, -9.022792 ,
  660. 1.0410435 , -8.687231 , -0.26636696, 0.59159315, 0.44963646,
  661. -2.55227 , 3.760346 , -3.6226554 , 0.76451534, 3.940824 ,
  662. -6.1907115 , 0.03913731, -2.195287 , 12.81929 , 3.740243 ,
  663. -2.0431573 , -3.2234733 , 4.977087 , -2.0583744 , -4.313118 ,
  664. -8.361553 , -4.839349 , 1.2649105 , -0.4038803 , -8.864319 ,
  665. -0.22526304, 6.496621 , -3.9927332 , -3.0912783 , -1.7083229 ,
  666. -4.0151443 , 5.793713 , -1.223026 , 3.628995 , -3.3192766 ,
  667. -1.3740363 , -2.227385 , 1.4187561 , 3.3306212 , 2.9296286 ,
  668. 10.850032 , -0.28220686, -6.5598164 , -6.5440636 , 5.372573 ],
  669. dtype=float32),
  670. array([-2.4585185 , -1.7729397 , -2.6141236 , -1.8381455 , 0.7026872 ,
  671. 3.3448277 , -2.7601624 , 0.6978214 , 1.7813108 , 0.96023124,
  672. 0.13913585, -3.3033385 , -0.74545157, -0.03433988, 2.488591 ,
  673. -4.802486 , -2.5571017 , 0.50834703, 1.651141 , -2.4180257 ,
  674. -0.20624077, -1.1076211 , 0.8867431 , -0.13547222, 0.04725568,
  675. -3.8998284 , 1.5795302 , -0.4857831 , -2.369314 , -3.4027183 ,
  676. -2.6164083 , 2.9070435 , 0.14166448, -2.6016371 , -1.3555586 ,
  677. -4.913535 , -0.07200186, 1.007081 , 0.09836482, -1.2087206 ,
  678. -5.5018544 , 1.1126451 , 2.580035 , -2.7255762 , 0.21119355,
  679. 0.9363319 , 2.549284 , 1.1837544 , 1.8252236 , 1.8010417 ],
  680. dtype=float32),
  681. array([-5.51898 , -0.08670288, 2.533808 , -0.62930787, 2.0436969 ,
  682. -0.52737147, -8.14435 , -2.1440089 , 3.5580356 , 2.3366578 ,
  683. 0.62490684, -0.54272366, 1.2115173 , 0.4630576 , 5.6235085 ,
  684. -5.979038 , -4.333733 , 1.1926401 , 2.557797 , 1.0405014 ,
  685. -1.0033395 , 3.4824073 , 7.566981 , -0.8349954 , -2.7417471 ,
  686. -5.902153 , -3.4977083 , -3.6147645 , -4.9763765 , -5.7024975 ,
  687. -4.080645 , -1.2242224 , -1.3030127 , -6.8181887 , 7.127743 ,
  688. -1.9627043 , -4.88791 , -1.9779421 , 2.5383003 , 3.6880643 ,
  689. -0.5499464 , 3.198787 , 0.44835356, 1.6102262 , 2.1538205 ,
  690. 5.5223093 , 1.8510246 , 2.0028217 , -0.5892771 , 6.397797 ],
  691. dtype=float32),
  692. array([-5.6086955 , -4.2373514 , -4.325729 , -0.2604632 , -4.3267717 ,
  693. 1.2306169 , -4.9875107 , 0.25482085, -2.1028476 , 3.2743576 ,
  694. -2.505084 , -1.0655369 , 0.92669296, -2.2150126 , -0.79143345,
  695. -7.574163 , 2.55667 , -2.2781107 , 6.9032497 , 1.1106801 ,
  696. -2.9897952 , -3.4756186 , 0.40632844, -0.8339445 , -1.4711856 ,
  697. -3.5527964 , -0.2692557 , -2.3196843 , -0.12242113, -5.5674343 ,
  698. 1.4291338 , 5.3289466 , -0.7240813 , -7.476739 , -0.1947865 ,
  699. -3.187609 , 0.6573796 , 0.64014953, 2.3703249 , -3.2851877 ,
  700. -0.9486112 , 0.4859436 , 1.2390776 , 2.7417278 , 1.4952459 ,
  701. 2.428648 , 3.3248382 , -2.709083 , -1.2632043 , 6.64749 ],
  702. dtype=float32),
  703. array([-2.2318158 , 3.702155 , -1.043897 , -0.6946529 , 0.9489282 ,
  704. -4.1875086 , -3.7284696 , -0.64925253, -4.70508 , 1.9683493 ,
  705. 0.26789245, -0.3861264 , 0.83766973, 2.9950435 , -4.72141 ,
  706. -3.7150533 , 5.2431917 , 1.4965366 , 1.8652581 , 0.35365692,
  707. 1.266102 , -1.8173094 , 2.1888402 , -2.392851 , 1.1757052 ,
  708. -1.1878152 , -1.0628431 , 2.3860009 , 3.7686813 , -2.347899 ,
  709. -6.856005 , 4.0052853 , -2.3282545 , -6.710157 , 0.84229213,
  710. -2.6058877 , 0.98823303, 1.1841166 , 2.6141686 , -1.1751107 ,
  711. -3.2545173 , -0.26594964, 2.193194 , 0.97846967, -3.5517004 ,
  712. 1.7293396 , 1.2746638 , 2.0425901 , -3.0987597 , 4.3208156 ],
  713. dtype=float32),
  714. array([ -7.096544 , -4.748524 , 0.29562798, -4.3380766 ,
  715. -4.352834 , 6.7748938 , -0.8563119 , -3.4132118 ,
  716. -1.7841492 , 4.7414284 , 0.2682542 , -2.2842512 ,
  717. -7.25927 , 3.455209 , 0.43910113, -13.137615 ,
  718. 1.0593047 , -5.3400426 , 4.397041 , 0.3832239 ,
  719. 4.7421 , 3.1232405 , -4.2206984 , -4.741117 ,
  720. 6.231742 , -7.471857 , 2.7696946 , -2.6500244 ,
  721. -1.4577734 , -3.3386662 , 4.155557 , 1.2469803 ,
  722. -3.5490615 , -4.1091466 , 6.038264 , -7.544601 ,
  723. -1.6497524 , -4.109846 , 11.283062 , -0.6462668 ,
  724. -6.779792 , -0.65847105, 2.0616994 , -0.63048774,
  725. -1.6467416 , 7.556163 , -4.1880145 , 2.1650617 ,
  726. -3.8759353 , 7.596533 ], dtype=float32),
  727. array([-4.624384 , -5.004731 , -0.7098611 , -2.8626728 , -3.6924453 ,
  728. 2.8062272 , -1.7374194 , -2.3822517 , -1.8108337 , 5.1248136 ,
  729. 0.17531192, -2.559635 , -2.6170378 , 1.5928295 , -1.409959 ,
  730. -6.5681376 , 1.0038283 , -3.7150474 , 5.2386026 , -0.06146364,
  731. 2.1677463 , 1.4272939 , -0.4088183 , 0.42315266, 4.5008 ,
  732. -5.982494 , 3.799712 , -1.909208 , -1.7788051 , -4.2031374 ,
  733. 2.7414448 , 1.7726054 , -3.9573073 , -3.2427113 , 4.1045914 ,
  734. -3.535407 , -0.7792394 , -3.1760046 , 6.270077 , -1.2946805 ,
  735. -3.382133 , 0.6974079 , 1.4308408 , -1.559467 , 0.18126401,
  736. 2.060202 , -2.6798258 , 0.36471435, -1.61904 , 6.7867136 ],
  737. dtype=float32),
  738. array([ -7.6516047 , 3.4517946 , -5.096704 , 4.8103147 ,
  739. -0.55565596, -3.6989684 , -7.9630437 , -0.6296219 ,
  740. -4.4354715 , 3.037203 , -3.2155845 , -0.02042701,
  741. 2.9263945 , 4.218419 , -7.1979933 , -0.82418895,
  742. 5.62745 , -3.6062655 , 11.34544 , 6.60245 ,
  743. 4.6504374 , -6.363588 , -2.2615821 , -1.8115177 ,
  744. 1.7227684 , 2.2270186 , -9.864831 , 1.9898789 ,
  745. 3.467014 , -14.425629 , 1.3257174 , -2.275263 ,
  746. -2.2944913 , -8.420104 , 5.024843 , -1.6601835 ,
  747. 3.133848 , -0.8028803 , 3.7165425 , -2.9662588 ,
  748. -5.121167 , -0.6043265 , 6.6356063 , 4.1662135 ,
  749. -0.09452068, 10.218036 , 5.8661256 , 7.972075 ,
  750. -3.7859833 , 8.277296 ], dtype=float32),
  751. array([ 0.9371042 , 3.929061 , -4.0448847 , -2.5300486 ,
  752. -7.8073535 , -0.03976032, -6.711446 , 1.1182778 ,
  753. -9.00641 , 7.3819036 , 2.6255307 , -1.3400385 ,
  754. -2.296632 , 2.3758955 , -0.29198036, -5.6080084 ,
  755. -3.5596054 , 0.9183377 , 1.7548404 , 1.508192 ,
  756. -1.1916898 , -12.9448185 , -3.811607 , 0.37342197,
  757. 2.6050057 , -4.6922 , -2.5487633 , 6.017118 ,
  758. 0.5613036 , 1.143623 , -1.2183219 , 6.164811 ,
  759. -1.3362694 , -4.850423 , 2.543409 , -0.42890066,
  760. 1.7279954 , 4.242405 , 7.342016 , -6.7666116 ,
  761. -5.8488364 , 1.8806524 , 1.907879 , -6.559306 ,
  762. -1.3218248 , 6.504099 , 2.8436353 , -0.69365126,
  763. 3.6434567 , 2.8595831 ], dtype=float32),
  764. array([ 8.3992314e-01, -1.4712837e+00, -3.8318405e-01, 1.3031248e+00,
  765. 6.1882699e-01, 4.0762377e+00, -8.5928926e+00, -2.4611089e+00,
  766. -3.4832919e+00, 4.3477635e+00, 2.7466908e+00, 1.2598662e+00,
  767. -2.0571151e+00, 1.2224065e+00, -1.0233852e+00, -4.5117311e+00,
  768. -4.5547199e+00, -1.4356710e+00, 1.3000529e+00, 1.9008921e+00,
  769. -5.2057686e+00, -2.2755034e+00, 5.4392111e-01, -1.1918376e-02,
  770. 1.9025277e+00, -4.9003968e+00, -1.4310243e+00, 6.2375413e-03,
  771. -2.6547768e+00, -5.3994040e+00, -4.4689589e+00, 3.3744597e+00,
  772. -1.0750134e+00, -3.2798433e+00, 3.8292017e+00, 7.7139580e-01,
  773. -1.4072919e+00, 3.1095028e+00, 6.6234369e+00, -4.9631290e+00,
  774. -1.0793550e+01, 4.7364597e+00, 2.0484316e+00, -9.0079889e+00,
  775. 9.0137619e-01, 4.5804696e+00, 2.7193246e+00, -1.6923476e+00,
  776. 3.9008348e+00, 9.1413088e+00], dtype=float32),
  777. array([-11.339022 , -5.298589 , -4.330099 , -1.788698 ,
  778. -8.102025 , 1.4281144 , -11.338372 , -0.36035314,
  779. -0.48424467, -0.05644065, 0.15080497, 3.4951487 ,
  780. -1.2883583 , 0.4637626 , -1.8017726 , -5.548428 ,
  781. 1.64006 , -2.0403903 , 10.409433 , 5.020579 ,
  782. 0.5982704 , -3.0419033 , 4.656654 , -0.7688192 ,
  783. -3.261299 , -9.296557 , -3.4096029 , -0.1708415 ,
  784. -0.05035473, -10.647096 , 2.569116 , 6.2736177 ,
  785. -3.3127406 , -7.14794 , -0.29306674, -4.688201 ,
  786. 1.8807553 , -0.56432736, 3.4356854 , -3.255255 ,
  787. -1.9680196 , -3.6550272 , 1.187112 , 1.6080725 ,
  788. 2.363706 , 10.230832 , 1.075558 , -4.480739 ,
  789. 0.1301506 , 5.892837 ], dtype=float32),
  790. array([ -5.2790995 , -5.852432 , -0.9353507 , -2.5415413 ,
  791. -1.1773144 , -3.0255487 , -12.53011 , -2.9866076 ,
  792. 11.493831 , 0.94464964, -1.068338 , 8.415067 ,
  793. 1.0739261 , 4.0447125 , 3.2439997 , 3.7050657 ,
  794. -7.375692 , -4.5082493 , -2.0595694 , -0.71608955,
  795. 4.161356 , -4.590357 , -0.28814384, 2.3921933 ,
  796. 8.049951 , -18.64102 , 1.5469791 , 7.676729 ,
  797. -5.914884 , -4.453662 , -1.6334159 , -0.47309655,
  798. -5.7192173 , -0.37250838, 6.9683447 , -0.6738241 ,
  799. 1.9488096 , -6.7471323 , 5.897946 , 4.7362576 ,
  800. -8.4544735 , 5.940658 , -0.15732355, 2.2656436 ,
  801. 8.184503 , 5.053028 , 2.1817367 , -2.5302901 ,
  802. -1.1062487 , 8.554321 ], dtype=float32),
  803. array([ -1.7787758 , -0.83469445, -5.3540974 , -6.881961 ,
  804. -4.291461 , 12.90742 , -6.7994933 , -1.848208 ,
  805. 2.709383 , -2.005457 , -1.9992137 , 12.352506 ,
  806. 3.3705885 , 4.6985607 , -4.4941916 , -2.0801237 ,
  807. -0.65778625, -9.054208 , 4.067291 , 3.3390098 ,
  808. 0.8707284 , -3.4774523 , -5.536454 , 0.49325264,
  809. 5.0540123 , -12.506916 , -8.197219 , 1.945474 ,
  810. 7.145685 , -16.074068 , -3.133617 , -1.5363398 ,
  811. -1.7499124 , 0.9510086 , 3.8357954 , -3.52338 ,
  812. -8.202135 , -0.84576595, 9.213495 , 5.05009 ,
  813. -5.665235 , -6.5650153 , 1.5421804 , -2.6146116 ,
  814. 2.0507443 , 6.9462833 , 1.1994344 , -4.604839 ,
  815. 3.458589 , -0.9045935 ], dtype=float32),
  816. array([-4.220897 , 1.552336 , -1.2204517 , -0.08878648, -4.0051684 ,
  817. 4.281713 , -9.67635 , 1.2666086 , -1.0522163 , 1.2078447 ,
  818. -4.0744095 , 1.546753 , 2.7775812 , 6.01276 , 2.7538693 ,
  819. -6.086157 , 0.87890774, 0.6482836 , 3.2716177 , 0.6437567 ,
  820. -2.369344 , -6.4375896 , -3.4083042 , -3.662707 , 4.240442 ,
  821. -5.0541735 , -2.2410998 , 0.02273834, 4.6915417 , -4.247125 ,
  822. -1.044547 , 2.2559438 , -5.619751 , -2.269051 , -2.6548846 ,
  823. 1.3392098 , 5.863636 , 1.1365526 , 4.161832 , 0.9370113 ,
  824. -2.192014 , 7.373276 , 2.2275507 , -9.486918 , -1.4223894 ,
  825. 7.422338 , -4.6371064 , -0.56860644, -1.5416676 , 9.065012 ],
  826. dtype=float32),
  827. array([ -4.442502 , 4.0282187 , -6.0842648 , 3.9323032 ,
  828. 0.59699786, -5.01382 , -6.893762 , -0.78125155,
  829. -2.0462413 , 4.7598453 , -2.5569913 , 1.627181 ,
  830. 3.1784935 , 2.367729 , -6.5883703 , 0.85719657,
  831. 4.80266 , -3.5328526 , 11.767983 , 7.083857 ,
  832. 4.0458837 , -7.280802 , -4.521397 , -4.115788 ,
  833. 3.830712 , 3.1927385 , -7.9931035 , 2.0956643 ,
  834. 4.4983573 , -12.856612 , -1.2513351 , -0.28889173,
  835. -2.4300714 , -7.6160607 , 1.7172811 , -2.1873846 ,
  836. 1.6354893 , 0.3208434 , 4.095575 , -0.37007666,
  837. -6.2211385 , -3.314154 , 7.223984 , 2.4372482 ,
  838. 2.72973 , 8.860987 , 6.101105 , 8.915494 ,
  839. -2.4940667 , 8.243137 ], dtype=float32),
  840. array([ 0.5694172 , -0.71972984, -2.5659661 , 3.1405716 ,
  841. 2.0384943 , -1.7724055 , -9.796708 , -3.1153796 ,
  842. 2.798783 , -1.5613102 , -2.6741874 , 3.7123227 ,
  843. 1.6289573 , 2.6975622 , -1.3273925 , 4.5921984 ,
  844. -7.744536 , -1.4713099 , 5.227969 , 0.27398944,
  845. 4.6041417 , 0.7571615 , -2.2389383 , -1.6219946 ,
  846. 3.1234052 , -12.693955 , -3.0500088 , 7.13209 ,
  847. -8.937954 , -6.9209175 , 0.7248229 , -2.2814567 ,
  848. -6.777058 , 0.10628989, 6.4011655 , -0.4720301 ,
  849. 5.111846 , -9.362011 , 1.3388888 , 7.3916016 ,
  850. -9.483229 , 2.4637756 , 0.79575485, 3.2188783 ,
  851. 8.397236 , 5.1712627 , 2.982876 , 1.2805383 ,
  852. -1.5412829 , 8.475918 ], dtype=float32),
  853. array([ -2.3922572 , 6.0100417 , 2.8991024 , -3.3729599 ,
  854. -2.0242875 , 4.852031 , -4.472573 , 4.5700436 ,
  855. -2.8940127 , 4.588357 , 1.590563 , -2.7989352 ,
  856. -0.40826198, 5.4982347 , 3.4408894 , -5.038548 ,
  857. -0.3142654 , -3.660607 , 6.757536 , -3.662961 ,
  858. 5.951469 , -1.4099452 , -2.6918843 , -0.5897354 ,
  859. 5.598935 , -2.7486904 , 0.6810631 , 1.9281864 ,
  860. 7.4477344 , -4.5294323 , 1.4289073 , 0.93235916,
  861. -5.9436646 , 1.2261182 , -0.59846294, -5.931668 ,
  862. 3.7282789 , -2.1666677 , 9.695359 , 1.7681628 ,
  863. -2.7677503 , 4.8080044 , 4.2072563 , -11.057596 ,
  864. -0.7317215 , 4.743064 , -2.9511743 , 0.7537428 ,
  865. 0.25388503, 2.7290072 ], dtype=float32),
  866. array([ -4.146322 , -3.1504786 , -2.8629372 , -5.105715 ,
  867. -4.6604724 , 1.101258 , -11.465623 , -2.1629527 ,
  868. 13.26268 , -1.6136367 , -3.4693751 , 12.15066 ,
  869. 0.17822723, 8.388703 , 2.6090672 , 2.600406 ,
  870. -4.1608295 , -7.128384 , -2.998554 , -0.2898618 ,
  871. 4.3390775 , -2.7291267 , -2.0322394 , 0.39882445,
  872. 8.669376 , -19.631277 , -4.2875986 , 8.561639 ,
  873. -0.40266722, -11.669548 , -3.5488687 , 2.1240265 ,
  874. -1.4954566 , 1.0646701 , 9.613358 , -4.7910376 ,
  875. -3.238909 , -4.61824 , 10.378713 , 5.7294106 ,
  876. -5.1939583 , 1.6326118 , -0.71705467, 4.096759 ,
  877. 10.490964 , 5.047403 , 1.9409193 , -2.7831037 ,
  878. -1.9664989 , 2.9344044 ], dtype=float32),
  879. array([ -2.1429627 , -1.6860179 , -0.2482788 , -3.7317374 ,
  880. 2.377911 , 10.9200535 , -8.71409 , -2.9244885 ,
  881. -4.8096385 , 2.2167819 , 3.7801988 , 3.2317722 ,
  882. 4.4073496 , 1.1723373 , -2.4624858 , -6.0385904 ,
  883. -4.2090197 , 2.2174292 , 2.555847 , 3.9359124 ,
  884. 0.8794487 , -2.8548946 , 0.72969997, 0.24073412,
  885. -3.2620516 , -10.608844 , -6.806741 , 0.52095383,
  886. -1.4366441 , -9.539379 , -7.002317 , -2.9688842 ,
  887. -2.387399 , -5.6312623 , 8.165697 , -1.4487671 ,
  888. -2.1847613 , 4.808183 , 6.188728 , -0.9214828 ,
  889. -13.294679 , -0.2971121 , -3.0428796 , -6.7102346 ,
  890. 2.670941 , 4.201865 , 4.608549 , -5.386942 ,
  891. 3.4858649 , 2.913668 ], dtype=float32),
  892. array([ -6.294534 , -5.7610464 , -0.6701696 , -2.922243 ,
  893. -4.4278793 , 7.0983577 , -0.464512 , -3.586003 ,
  894. -1.8478732 , 6.473931 , -1.572769 , -4.1234236 ,
  895. -7.2434278 , 4.947509 , -1.0093876 , -14.486174 ,
  896. 1.1833757 , -5.541611 , 3.9636111 , 1.1935436 ,
  897. 5.4999914 , 3.4043086 , -4.3084846 , -4.6898417 ,
  898. 9.129433 , -7.8975997 , 3.675748 , -4.683115 ,
  899. -1.0222343 , -5.6692586 , 4.2077985 , 1.5670764 ,
  900. -5.718533 , -3.7473083 , 7.5162477 , -8.117539 ,
  901. -1.0310107 , -4.276894 , 14.076802 , -0.72418237,
  902. -7.734585 , 2.3619115 , 1.0991557 , -1.7008882 ,
  903. -1.1742445 , 8.104869 , -4.99342 , 3.1499686 ,
  904. -4.90936 , 7.8695803 ], dtype=float32),
  905. array([-2.5701268 , -2.582311 , -6.564345 , 2.776631 , -3.9837992 ,
  906. -3.1757367 , -8.642335 , -3.694404 , -2.8413901 , 1.0858488 ,
  907. 7.5879908 , 2.0812302 , -4.353341 , 2.2716432 , 0.5283912 ,
  908. -6.374832 , 6.1094303 , -1.7292461 , 3.3867414 , -1.419502 ,
  909. -1.7883763 , -8.032714 , 2.2589815 , -1.4845892 , 2.2916133 ,
  910. 0.8211247 , -0.32538918, -1.2069868 , 1.0422196 , -4.1290145 ,
  911. 1.4533043 , 1.542802 , -1.9769408 , -0.25344646, -0.57730436,
  912. -0.42254022, -1.0026492 , -1.611055 , 2.1725464 , 0.02438253,
  913. -3.4992974 , 2.2133646 , -0.13183627, -4.329806 , 1.3656749 ,
  914. -0.7189888 , -3.170193 , -5.0275364 , -1.7393972 , 1.0013796 ],
  915. dtype=float32),
  916. array([ -3.4818761 , -2.002635 , -6.558977 , 1.1135204 ,
  917. -3.8884594 , -0.32970384, -1.2171583 , -3.3093052 ,
  918. 0.62496835, -2.992401 , 3.7106843 , 2.6928766 ,
  919. -3.9826698 , -0.91545826, -0.06615018, -3.962101 ,
  920. 3.2673724 , -2.4984055 , 1.0862375 , -4.209698 ,
  921. -0.9773851 , -7.1307573 , -2.747822 , -6.1371436 ,
  922. 4.7222915 , -4.4351144 , 0.2924013 , 8.731141 ,
  923. 4.946328 , -1.3269055 , -3.1971653 , -5.260378 ,
  924. -2.620926 , -2.7563193 , 0.41459495, 3.8626387 ,
  925. 5.542715 , -2.3483977 , 6.8667073 , -3.1586688 ,
  926. -0.02780581, 4.933993 , 1.8873576 , -11.576929 ,
  927. 9.40045 , 2.9346626 , 2.0842247 , -1.9030937 ,
  928. -4.0061364 , -0.34195167], dtype=float32),
  929. array([-3.4358566 , 0.38961136, -4.5948625 , 4.6151085 , 0.14466923,
  930. -0.3494442 , 0.2114852 , -0.14693972, -2.5506465 , 1.0467541 ,
  931. 2.287802 , -0.11829356, -0.6067875 , 3.341105 , 2.6976922 ,
  932. -1.8993832 , -0.7862277 , 0.7157272 , 1.6861589 , 0.18795392,
  933. -2.2277577 , -4.1203628 , -2.3142695 , -2.672945 , 4.145465 ,
  934. 0.00842531, 0.22530964, 3.7313738 , 3.0587978 , -1.9138893 ,
  935. -3.5655572 , -5.7189016 , 0.99305224, 0.10285577, 1.3098574 ,
  936. -0.74491745, -2.6727061 , -3.0366888 , 5.659237 , 5.09013 ,
  937. -2.8369017 , 3.697348 , 4.7245746 , -1.5941339 , 2.9432282 ,
  938. 2.794308 , 2.4998977 , -1.2904189 , -3.1094792 , -0.12540726],
  939. dtype=float32),
  940. array([-0.7191119 , -0.8773777 , -2.5578752 , -0.7117537 , -0.2752883 ,
  941. -0.6221211 , -2.1540716 , -1.1877649 , 0.03469327, 0.7425608 ,
  942. 2.1057172 , -0.04288226, -0.57353497, 0.11519825, -1.4374863 ,
  943. -0.90090024, 0.08526864, 0.2167021 , 0.8606855 , -0.791971 ,
  944. -0.32429802, -2.3594513 , -0.53584725, -0.73249763, 0.9470578 ,
  945. -1.4675674 , 0.3453147 , -0.74641526, 0.7123007 , -0.60702866,
  946. 1.1387167 , -3.1216993 , 0.19680716, -0.00675637, 1.051729 ,
  947. -0.60085446, 0.46386245, -0.78645974, 0.9283099 , 0.5707098 ,
  948. -1.6507543 , 0.58791584, 0.50637215, 0.6096184 , 0.71293736,
  949. 2.9523962 , -0.47723117, 0.00989703, 2.0440865 , -0.872961 ],
  950. dtype=float32),
  951. array([-3.8254251e+00, -1.5945902e-01, -3.0619688e+00, 2.4575195e+00,
  952. -1.1324526e+00, -1.1722335e+00, -1.9366963e+00, 2.4997928e+00,
  953. 1.1576891e+00, -8.8482594e-01, 9.8016965e-01, 5.8022034e-01,
  954. -5.1252210e-01, -1.3552769e-01, 1.1114304e+00, -4.2282195e+00,
  955. 1.3105428e+00, 1.2496599e+00, 1.8442442e+00, 1.6798590e+00,
  956. -1.3876987e+00, -4.3759193e+00, -2.8695564e+00, -1.2768866e+00,
  957. -2.6154291e-02, -2.3657725e+00, 3.6526728e-01, 4.2655963e-01,
  958. 2.1048546e+00, -5.1612849e+00, -1.9535080e+00, -3.0338497e+00,
  959. -1.2737676e+00, -1.1613852e+00, -3.4730124e+00, -1.7009236e+00,
  960. -2.9252283e-03, -1.4692165e+00, 4.1888204e+00, 2.0185516e+00,
  961. -1.5284789e+00, 3.5334408e+00, 2.1709299e+00, -3.9379282e+00,
  962. 5.1392369e+00, -1.2803395e+00, -2.8219984e+00, 7.6567972e-01,
  963. -1.4618556e+00, 1.0682316e+00], dtype=float32),
  964. array([ 0.28010982, -1.5975604 , -5.136792 , 3.3079095 , -0.64136344,
  965. 0.6248627 , 0.02532686, -0.68438953, -2.8903153 , 1.3952359 ,
  966. 3.5749607 , 1.8682145 , -1.6685537 , 0.12085302, 0.42065015,
  967. -7.10518 , 0.55007017, -3.8009572 , 0.7708117 , -2.6712935 ,
  968. -2.578757 , 1.5196589 , 0.07600874, -1.9116751 , 0.9215659 ,
  969. -2.3381925 , 2.6430712 , 2.9797835 , 0.41372046, -2.8022964 ,
  970. -0.72475886, -0.97853285, 1.8832364 , -1.0981505 , -0.8738995 ,
  971. -2.043232 , -0.8605647 , -2.7336698 , 2.6565611 , -1.5858312 ,
  972. -3.1669142 , 0.54441136, 1.5318466 , -3.5559928 , 3.2996974 ,
  973. -0.53977937, 0.02179178, 1.4697819 , -0.22391729, 0.02669727],
  974. dtype=float32),
  975. array([-2.2627666 , 5.296569 , -2.417348 , 0.33309716, 0.32539994,
  976. -1.8452874 , -1.2607741 , 1.2324919 , -2.9197035 , 2.185596 ,
  977. 4.1667686 , -2.7529316 , -2.0583875 , 3.619702 , 1.021345 ,
  978. -4.8080606 , -0.9559636 , -0.28129843, 4.1469502 , -0.73997325,
  979. 0.67430234, -3.9979796 , 1.6777301 , -0.33356476, 1.205397 ,
  980. -0.41634107, -0.22189952, 1.9607271 , 0.65827316, -1.4966136 ,
  981. 0.16791616, -4.5810947 , 0.9739744 , 0.9970641 , 0.51273614,
  982. 2.1935406 , -1.0531245 , -2.800249 , 2.6338327 , 0.17902635,
  983. -3.7247381 , 0.70274514, 1.7566454 , -4.044159 , 1.8358845 ,
  984. 1.6234574 , -1.6893929 , 0.11399537, 1.3483679 , 0.584895 ],
  985. dtype=float32),
  986. array([-4.08489 , -2.3923578 , -3.7393987 , 0.19239444, -1.7656294 ,
  987. -2.4057791 , -3.0220206 , 3.7770169 , 0.17535181, -0.23663646,
  988. 1.2643229 , -1.6344658 , -2.406249 , -0.9207819 , 0.04338089,
  989. -6.07932 , -0.38844773, 0.01245105, 1.6538471 , -0.8700765 ,
  990. -1.1576607 , -2.7821834 , -0.6323066 , -1.2520028 , 4.911313 ,
  991. -2.971133 , -0.26933235, 0.48283398, 0.63519365, -4.0830536 ,
  992. -0.12820439, -4.0657835 , -1.5502677 , 0.07617518, -0.25769463,
  993. 1.543894 , -0.14078042, -1.0619944 , 2.2579706 , 3.7877054 ,
  994. -3.007705 , 4.117382 , 4.6235785 , -6.3436255 , 4.2279267 ,
  995. 0.8045411 , -0.5348532 , -1.9208246 , 1.028442 , -2.1455512 ],
  996. dtype=float32),
  997. array([-1.5462197 , 0.68793744, -1.8746437 , -2.880357 , -2.6869636 ,
  998. 2.229856 , 0.02252706, -3.557144 , -4.000848 , 3.4398818 ,
  999. 4.1995993 , -1.5199361 , -0.9367401 , 1.0549401 , -2.7493286 ,
  1000. -4.5584855 , 2.5349286 , -0.22162798, 1.1587996 , -1.8274727 ,
  1001. -1.8319154 , -2.9913697 , 0.59873384, -3.3429527 , 5.742064 ,
  1002. 0.8487469 , -0.09163592, 0.19545639, -0.38255924, -4.434959 ,
  1003. 0.3376608 , -3.2420797 , -0.32773945, -1.9318208 , 1.04693 ,
  1004. -1.1576047 , -0.66553885, -5.13224 , 2.3455272 , 0.40663484,
  1005. -3.1048815 , 0.0104264 , 1.6443242 , -0.23923437, 3.891193 ,
  1006. 3.7347727 , -1.5419897 , -0.9638986 , 0.22109854, 3.1940157 ],
  1007. dtype=float32),
  1008. array([-1.8196687 , -2.5938616 , -1.5409667 , 0.62754726, -0.03489953,
  1009. -3.8625154 , -3.171813 , -2.5058973 , -1.7661316 , 1.1537336 ,
  1010. 4.03703 , 2.120253 , -3.0486171 , 1.9301702 , -1.3707085 ,
  1011. -2.5822701 , 2.8172762 , -1.4416375 , 2.813085 , 0.22692607,
  1012. 2.4695358 , -1.0485624 , 1.9003835 , -2.2704554 , 4.1315923 ,
  1013. -0.19270591, 0.4307938 , -0.13841237, 0.2496294 , -0.4505065 ,
  1014. -1.6624981 , -4.6231217 , 0.45667955, -3.613264 , -1.5824127 ,
  1015. 1.3185984 , -0.71935636, -1.5911838 , 3.0060227 , 2.9076664 ,
  1016. -0.95549905, 2.4316125 , 3.9352489 , -0.9588295 , 0.67389065,
  1017. -0.16328724, 0.7860807 , 1.4770565 , -2.2950265 , 0.99784255],
  1018. dtype=float32),
  1019. array([-2.7252963 , -1.7644154 , -2.8507547 , 4.855858 , -1.5214626 ,
  1020. -0.35541365, -1.4029266 , -1.0175683 , -1.8964766 , 1.1079849 ,
  1021. 3.0237398 , 1.8156165 , -1.0447481 , -0.3894745 , 0.0620212 ,
  1022. -2.6057506 , 1.6183314 , 0.4434959 , -0.9989262 , 2.0081477 ,
  1023. -1.3251082 , -7.2556515 , -2.3621461 , 0.223538 , 0.78426576,
  1024. -2.5566652 , -2.5143454 , 2.8239467 , 0.66381705, -4.115076 ,
  1025. -1.6928035 , -0.7911902 , -1.156342 , -4.383043 , -2.0087705 ,
  1026. -1.988712 , -1.3054804 , -0.7878483 , 1.563634 , 2.6258588 ,
  1027. -3.0605397 , 2.1470666 , 1.6029868 , -1.169144 , 3.2658558 ,
  1028. -0.00881903, -0.21764958, -0.30839333, 2.868999 , -1.042647 ],
  1029. dtype=float32),
  1030. array([-6.036111 , 7.011594 , -3.8074064 , -0.26475492, -5.416753 ,
  1031. -5.196517 , -0.6555732 , 3.7582836 , -6.0533643 , -1.6487877 ,
  1032. 6.208705 , 1.9081854 , -2.665163 , 4.0683875 , 1.9969201 ,
  1033. -2.4417908 , 0.1755384 , -5.980143 , -0.20807004, -2.21497 ,
  1034. -3.8417623 , -5.011049 , -3.228236 , -4.9575505 , 1.9326649 ,
  1035. -6.4406214 , -5.7187824 , 1.4913782 , 0.31444713, -2.7442145 ,
  1036. -4.3656144 , -3.7055695 , 4.467525 , -2.0519664 , -0.4565895 ,
  1037. 2.0978458 , -4.3895135 , -3.7499166 , 4.5944734 , 1.2860647 ,
  1038. -1.2174387 , 0.20352055, -2.2153518 , -2.8798387 , 4.4709306 ,
  1039. 0.0787942 , -0.36662227, 0.88841254, 0.9920982 , 1.990337 ],
  1040. dtype=float32),
  1041. array([ 0.04853628, 1.9572281 , -1.6615394 , 3.2901154 , 0.32139367,
  1042. -1.3886391 , -2.399209 , -0.49695468, -0.3661035 , 1.6167489 ,
  1043. 2.02278 , 1.3867704 , -0.8939387 , 0.2093313 , 0.5565676 ,
  1044. -1.0574477 , -0.3294435 , 0.29080606, 2.7930398 , -0.09274203,
  1045. -0.49407616, -0.9469544 , -4.3268347 , -2.7259486 , 0.87475455,
  1046. -1.7371875 , 0.00577259, 1.4998484 , 2.3574986 , -2.4746506 ,
  1047. -0.883993 , -2.9085882 , 0.23645228, -1.4797404 , -2.2033687 ,
  1048. 0.32043925, -2.7280922 , -0.18785901, 1.8756309 , 1.6466519 ,
  1049. -2.5100865 , 0.6273397 , 0.13093841, -2.5432565 , 1.1505743 ,
  1050. 0.1876145 , 0.27782008, -0.04620135, -0.01436949, 1.0527477 ],
  1051. dtype=float32),
  1052. array([-9.6310055e-01, 2.9486604e+00, -7.5692172e+00, 3.4142404e+00,
  1053. -5.4927796e-01, 4.5045514e+00, 9.6842533e-01, 1.0854801e+00,
  1054. -5.3032136e+00, 3.3802440e+00, 7.9152250e+00, -3.6826034e+00,
  1055. -5.7561822e+00, 2.1856980e+00, 2.7766542e+00, -5.1908779e+00,
  1056. 2.3334310e+00, -1.3147744e+00, 3.9238694e-01, -1.0973600e-01,
  1057. -1.5604365e+00, -4.7791915e+00, 2.8571019e+00, -4.4454803e+00,
  1058. 3.6456995e+00, -4.8257337e+00, -5.5981157e-03, 1.6598079e+00,
  1059. 6.8299586e-01, -3.6645448e+00, 3.0624931e+00, -3.4538519e+00,
  1060. -1.5416390e-01, 1.2523398e+00, 1.5948784e+00, -1.2437590e+00,
  1061. 2.1924381e+00, -6.3908601e+00, 8.1314707e+00, 1.9243097e+00,
  1062. -1.1909007e+00, 1.2905276e+00, -1.0420914e+00, -1.0191136e+01,
  1063. 3.0307150e+00, 1.8011487e+00, 2.0279312e+00, -4.9235373e+00,
  1064. 1.7588122e+00, 2.8237431e+00], dtype=float32),
  1065. array([-0.14296651, -0.3668149 , -1.6386166 , 0.4825198 , -1.7613268 ,
  1066. 0.12633976, -1.1356618 , -0.38770854, 0.4563073 , 0.40652344,
  1067. 1.142059 , 0.91537434, -1.165291 , 0.68400663, 0.6329063 ,
  1068. -0.49451825, -0.5909155 , 0.48676914, 0.76474786, -0.15258206,
  1069. 1.0912838 , -0.4095105 , -1.2151426 , 0.16679278, 1.2599738 ,
  1070. -0.98687536, 0.7656618 , 1.4114926 , -0.41585067, -1.1742656 ,
  1071. 0.21877682, -1.1900553 , 0.26946372, -1.23295 , -0.9895176 ,
  1072. -0.38425094, -0.41202444, 0.09593611, 1.1892066 , 0.8284892 ,
  1073. -1.0376427 , 0.6067363 , 0.6816776 , -1.3828584 , 1.4615573 ,
  1074. 1.2837626 , -0.95090085, -0.8832464 , -0.00710624, 0.9513098 ],
  1075. dtype=float32),
  1076. array([-3.5245893 , -2.9508016 , -5.8257437 , 3.8369243 , -0.87147313,
  1077. -1.5769618 , -1.6365535 , -4.7868447 , -6.8739896 , 1.3825145 ,
  1078. 3.9601698 , 1.1007915 , -1.3382802 , -1.7700682 , -0.22368953,
  1079. -3.9976106 , 5.0976048 , -3.9771104 , 4.202396 , -1.8399214 ,
  1080. -0.9263652 , -3.1933944 , -1.8110627 , -2.3715005 , 0.03217161,
  1081. -1.6224099 , -1.63801 , 4.534491 , -0.20429106, -0.4705966 ,
  1082. -0.8692246 , -3.3335466 , -0.1572431 , -6.1089034 , 1.5078112 ,
  1083. -2.3424432 , -3.0701873 , 1.45787 , -1.5519551 , 3.5260966 ,
  1084. -1.5112814 , -1.9234488 , 0.68987197, -4.5788236 , 2.2278056 ,
  1085. -0.18940789, 1.1906595 , -1.1782064 , -0.65865254, 1.1339011 ],
  1086. dtype=float32),
  1087. array([-5.6253314 , 3.4067771 , -3.93433 , -0.30091673, -3.6481183 ,
  1088. 0.06618461, -0.97435325, 1.0767866 , -6.472714 , -1.7532697 ,
  1089. 6.5075665 , 1.3809817 , -3.9158926 , 1.7315521 , 3.2815602 ,
  1090. -3.8861058 , 3.8529358 , -3.7713943 , 0.04905577, -0.81603473,
  1091. -2.298748 , -6.542928 , -2.8242505 , -4.9952197 , 1.191403 ,
  1092. -3.2486732 , -2.6122363 , 1.2654219 , 0.9379416 , -2.87429 ,
  1093. -1.9033493 , -3.9006085 , -0.87286323, -4.4465537 , 0.06431546,
  1094. 1.0047381 , -2.822181 , -2.7459345 , 5.490393 , 1.470462 ,
  1095. -2.2231703 , 3.1113794 , 2.4732034 , -3.2401514 , 1.8433055 ,
  1096. 0.81445366, 1.6430241 , -3.3408062 , 2.6234784 , -0.8768474 ],
  1097. dtype=float32),
  1098. array([-2.3121386 , -1.6659766 , -4.4667273 , -2.3704586 , 0.2396539 ,
  1099. 1.0335122 , -0.77845675, 0.40209323, -0.57341665, 2.98113 ,
  1100. 5.1178637 , 5.143472 , -1.2644876 , 1.1849672 , 2.1356916 ,
  1101. -4.7879558 , 2.7514365 , 0.0704132 , 2.3907735 , 3.3133585 ,
  1102. 2.6394777 , -1.2553519 , -0.940106 , -1.7382486 , 4.9468284 ,
  1103. -3.0404334 , 2.743838 , 1.5736488 , -0.49235538, 0.64293313,
  1104. -0.65278435, -5.0021615 , -2.0458887 , -1.755501 , -2.4528549 ,
  1105. -0.55324197, -0.33366153, -1.6181052 , 4.4586115 , 3.8949006 ,
  1106. -3.1312523 , 0.6866413 , 0.01527161, -1.625857 , -0.40333268,
  1107. 0.11121845, 2.9479625 , -3.3655722 , 1.1620139 , -2.0191329 ],
  1108. dtype=float32),
  1109. array([-2.0695262 , -1.656537 , -2.0973868 , 2.9818 , -4.093638 ,
  1110. -2.7275176 , -1.1629608 , -3.9998763 , -1.5574715 , -0.8192388 ,
  1111. 3.0582933 , 3.321981 , -5.796379 , 1.1468971 , 2.678831 ,
  1112. -4.2076674 , 1.4788159 , -2.6099062 , -0.62975717, -2.7715259 ,
  1113. -2.1255887 , -3.4687889 , -1.4627382 , -2.5894926 , 2.8065655 ,
  1114. -3.030339 , -2.3447292 , 1.3666302 , -3.089121 , -5.257162 ,
  1115. 0.66624594, -1.9116644 , 3.7192628 , -3.2381155 , -4.077562 ,
  1116. -1.3547659 , -1.9465309 , 2.701884 , 0.55622023, 1.5197747 ,
  1117. -2.4518268 , 1.3839171 , 1.493277 , -0.5714785 , 5.1543384 ,
  1118. 2.9218102 , 0.43889904, -0.31936473, 2.5554495 , 3.6078615 ],
  1119. dtype=float32),
  1120. array([-2.0726702 , -0.44170916, -3.1128793 , 2.7091253 , 0.16842961,
  1121. -1.1328397 , -1.5151942 , -1.7677919 , -2.1432836 , 1.6241087 ,
  1122. 1.0404819 , 0.5976825 , -2.382203 , 0.23346639, 0.37535512,
  1123. -2.844589 , 2.2163212 , -0.342542 , 3.7021828 , 1.4321176 ,
  1124. 0.7017996 , -1.654122 , -1.2761246 , 0.01661568, -0.147383 ,
  1125. -0.7250648 , -0.18036938, 2.2082164 , -0.64183164, -2.3244438 ,
  1126. 0.32393056, -0.7005564 , -1.2599154 , 0.12161626, -0.9112439 ,
  1127. -1.6060033 , -1.2616855 , 0.6758917 , -0.00593876, 0.34166825,
  1128. -1.9918677 , 0.68887335, -2.1751835 , -2.0763032 , 1.0013793 ,
  1129. 0.3676008 , 0.29039428, 0.34867087, -1.1701207 , -0.11810631],
  1130. dtype=float32),
  1131. array([-1.2089801 , 0.46640134, -6.3323317 , 0.1910343 , -3.7534926 ,
  1132. -0.86854446, -1.9627969 , 0.22157641, -2.2026002 , 0.85248077,
  1133. 0.92502916, 0.78117263, -3.4296405 , -0.6169634 , -1.186565 ,
  1134. 0.07964128, 5.032347 , 0.6867418 , 5.075077 , -0.6691005 ,
  1135. 1.2446543 , -2.6940694 , -2.8530116 , -1.3215139 , 1.0067585 ,
  1136. -1.5927944 , -2.6332734 , 2.422333 , 1.7719263 , -0.9000885 ,
  1137. -2.7435849 , -1.5458956 , 0.20235972, 1.2865305 , 1.8007208 ,
  1138. -0.17878303, 1.4335027 , -1.937294 , 3.2294416 , 0.4020192 ,
  1139. -4.4505424 , 1.8855017 , -0.26466817, -2.4437668 , 2.915924 ,
  1140. -1.4735115 , 2.6791224 , -1.3266859 , -0.5906675 , 1.6304402 ],
  1141. dtype=float32),
  1142. array([ 1.8417972 , -3.2969365 , -1.6243112 , -0.07577129, -0.16136245,
  1143. -1.0575854 , -3.8703272 , -0.25778657, -1.5608492 , 0.17746714,
  1144. 2.2129903 , -0.6859469 , 0.23228937, 3.0543754 , 0.06274473,
  1145. -1.5552808 , 3.252556 , -0.37025172, 0.08863384, 0.46336538,
  1146. 1.8114752 , -1.9954245 , -0.26635167, -0.87547034, 2.862288 ,
  1147. -0.21349056, 0.15945138, 0.73676336, 1.4825774 , -1.4602721 ,
  1148. -1.0391389 , 0.40068537, -1.3445605 , -1.1912605 , -0.93175375,
  1149. -0.25966203, -0.03124508, -2.0012345 , 4.7611237 , 2.7769814 ,
  1150. 0.30142567, 1.1084125 , 0.38613698, -0.750065 , 3.4474442 ,
  1151. -0.90744096, 0.44639117, 0.31676546, 2.5879986 , 1.1670351 ],
  1152. dtype=float32),
  1153. array([-1.2625854 , 0.5001648 , -2.8195434 , -2.109943 , -0.866798 ,
  1154. 0.6124889 , -3.3214886 , 0.25622356, -0.9430965 , -1.485729 ,
  1155. 3.7640703 , -1.5656197 , -4.5478935 , 2.9335015 , 1.9390736 ,
  1156. -2.2837014 , 4.3470106 , -0.9208722 , -0.69139904, -0.7948096 ,
  1157. 0.77715373, 0.11467445, -2.4525125 , 0.39640853, 1.5023783 ,
  1158. -1.7389562 , -1.0245047 , -0.9965029 , 0.44104642, -2.2003415 ,
  1159. -1.452724 , -1.6477855 , 0.03753076, -1.9543264 , -1.0423057 ,
  1160. 2.7989607 , -0.87146926, -1.4550425 , 3.5810735 , 3.975928 ,
  1161. -0.97910285, 2.221531 , 2.427962 , -1.0670339 , 0.9038839 ,
  1162. -0.06803034, 1.5332459 , -2.8699925 , 1.1082792 , 1.2724662 ],
  1163. dtype=float32),
  1164. array([-0.10057606, 3.1362255 , -3.172473 , 4.4388385 , -2.220638 ,
  1165. -2.9833794 , -1.4463418 , -1.7114793 , -2.3905673 , 1.474179 ,
  1166. 4.658159 , 1.2084663 , 2.9385817 , -1.6227623 , -2.2915244 ,
  1167. -6.6202283 , 4.5397034 , -3.377362 , 2.29298 , -1.1087345 ,
  1168. -1.6805199 , -2.3061466 , -2.5576103 , -3.3331156 , 1.0142242 ,
  1169. -0.8141169 , -1.1545017 , 1.480638 , 0.7806954 , -1.7439629 ,
  1170. -2.1457214 , -5.8918314 , 0.7156077 , -3.5243683 , 0.5815327 ,
  1171. -2.8669732 , 0.67560065, -1.9473518 , -0.23182268, 0.60088164,
  1172. -4.8239756 , 0.57176995, 0.4761446 , -2.8550596 , 3.5204937 ,
  1173. 0.2014823 , -0.24104118, -0.66022676, 0.12778164, 4.434615 ],
  1174. dtype=float32),
  1175. array([ 1.5307817 , 2.530929 , -3.8748035 , 0.23445466, -1.1161026 ,
  1176. -0.55968577, -0.91101 , 0.11952978, -2.779294 , 1.1218362 ,
  1177. 2.2323036 , 1.9616442 , -3.3829994 , 2.4724493 , -1.1149973 ,
  1178. -3.10522 , -1.7907431 , 1.1748 , 0.8711261 , 0.8471583 ,
  1179. 1.9763947 , -0.86393404, -1.5932542 , -3.2048657 , 3.4085398 ,
  1180. -1.1154054 , 1.1352259 , 1.0653872 , 2.0551004 , -2.5634005 ,
  1181. 0.42972627, -2.8022206 , 1.5728073 , -1.9544501 , -2.6421106 ,
  1182. 1.1778097 , 1.310839 , -1.7644297 , 0.8350659 , -0.29654366,
  1183. -2.1014824 , 2.6428843 , 1.9022064 , -1.0101285 , 2.3506844 ,
  1184. 1.5800897 , 1.0742991 , 1.1283019 , -0.3828539 , 0.9142292 ],
  1185. dtype=float32),
  1186. array([-3.3903067 , -0.49811104, -4.821784 , 2.4669597 , -0.13699844,
  1187. -6.3152027 , -5.568744 , -0.16465083, -2.0253377 , -0.52371955,
  1188. 4.2416153 , 0.23054938, -2.8575087 , 1.681642 , 1.0173538 ,
  1189. -2.4470325 , -0.08086099, -4.8710666 , 5.273515 , -1.370026 ,
  1190. -1.8585007 , -2.4419777 , 3.7206643 , 0.13777657, 1.7473061 ,
  1191. -1.7866583 , -0.02212899, 2.9683378 , 4.9466863 , -2.0150743 ,
  1192. 3.0583272 , -3.6290417 , 4.8001485 , -7.117095 , -3.0532985 ,
  1193. -3.223789 , 0.23271215, -2.8002555 , 4.035003 , 1.6214968 ,
  1194. -2.1404781 , 1.8253337 , 0.21572007, -1.885991 , 3.151299 ,
  1195. 3.0459924 , -0.44574553, -2.7563741 , -2.4115913 , 1.9331789 ],
  1196. dtype=float32),
  1197. array([-3.9845593 , -0.482322 , -5.2133055 , 0.60098433, -2.1115668 ,
  1198. -1.1677717 , -0.9454791 , -0.9713548 , 0.2461053 , 0.33108386,
  1199. -0.13784604, -2.0081444 , -1.8863442 , 0.11911131, 2.741031 ,
  1200. -5.0706244 , -0.17405745, -1.8616291 , 3.825486 , 0.42265522,
  1201. 1.574457 , 0.60380095, -1.1516178 , -0.5925902 , 2.3642075 ,
  1202. -2.1938894 , 0.8976434 , 4.743274 , 2.4674468 , -3.1288686 ,
  1203. -0.84386164, -3.4392846 , -0.58113533, 1.8696928 , -0.40503356,
  1204. -0.71522725, 0.66238385, -0.17206882, 4.0366745 , -0.7614465 ,
  1205. 0.60723317, 1.87939 , 0.5351631 , -2.7345216 , 2.1620414 ,
  1206. 3.0598555 , 0.31053764, 0.6735179 , 0.42510146, -2.313665 ],
  1207. dtype=float32),
  1208. array([ -2.2732942 , 0.72312117, -6.1658683 , 0.67376643,
  1209. 0.01526257, -3.3839798 , 0.986568 , -6.741488 ,
  1210. -2.7833393 , 0.4277794 , 5.84707 , 1.2275788 ,
  1211. 0.11291145, 3.5283816 , -0.74742866, -0.76578254,
  1212. 2.9688718 , -0.77703273, 0.18759201, 0.9020354 ,
  1213. -2.9515603 , -7.560484 , -0.32712764, -4.247399 ,
  1214. 6.317647 , 0.02104646, 1.6649884 , 4.1042614 ,
  1215. 0.2620284 , -10.970463 , -1.7380517 , -10.989274 ,
  1216. -0.99246925, -1.2009268 , 2.1503842 , 3.1141737 ,
  1217. -2.8316529 , -6.5664287 , -0.7314816 , 1.3541851 ,
  1218. -5.5821147 , 0.40304074, 1.7447263 , -1.3338119 ,
  1219. 3.957826 , 9.796113 , -2.9822633 , -0.2375304 ,
  1220. -1.7271763 , 9.931957 ], dtype=float32),
  1221. array([-2.4638014 , -0.87737334, -1.6626849 , 1.2413989 , -0.83242875,
  1222. 0.3617118 , -0.87216276, -0.02800599, -0.8001304 , 1.1937045 ,
  1223. 1.0478162 , 0.8977447 , -0.9376111 , -0.12681994, -0.01134396,
  1224. -0.8434995 , 1.2900192 , 1.0972407 , 0.25484464, 0.534804 ,
  1225. 0.93345904, -2.3073773 , -1.1887684 , 0.9375268 , 0.5945696 ,
  1226. -2.3561573 , 0.17457929, 1.3002715 , 2.0536182 , -1.4647752 ,
  1227. 0.12036125, 0.23564914, 0.28903064, 0.19058134, -0.08385684,
  1228. -1.2794561 , -0.22667973, -0.10357913, 1.7141443 , 0.98089015,
  1229. -0.4326879 , 0.03579835, 0.93540573, 0.06371353, 1.688482 ,
  1230. -0.37058982, -1.0218549 , 0.19893853, 0.66477185, 0.15926272],
  1231. dtype=float32),
  1232. array([-3.4127278 , -3.9505558 , -4.5570755 , 1.2504156 , -3.181822 ,
  1233. 1.2250665 , -1.942966 , 0.03357741, -2.4405375 , -0.10019985,
  1234. 3.3373227 , -0.94270873, -2.1759639 , 0.8022465 , 0.97944033,
  1235. -1.8698492 , 1.6460868 , 0.6768864 , 1.2175547 , -2.562956 ,
  1236. -0.8453837 , -5.107087 , 0.6415925 , 0.18625987, 1.1602039 ,
  1237. -0.81486875, -0.6167371 , 2.673524 , 1.6023026 , -3.2617974 ,
  1238. -3.564456 , -1.3281595 , -2.3552241 , -0.86652625, 0.04033621,
  1239. -1.8388749 , 2.2687018 , 1.3115971 , 0.6702598 , -0.4193546 ,
  1240. -1.6621717 , 0.59579915, 0.62406397, -5.5948596 , 1.5113629 ,
  1241. 2.4850883 , -0.80965006, -0.01491139, 1.0615836 , -2.7269907 ],
  1242. dtype=float32),
  1243. array([ 0.20188907, -0.45675057, -3.6357105 , 2.2689004 , -2.0312915 ,
  1244. -1.8840072 , -0.8234562 , -1.8153863 , -2.0555832 , 1.1913784 ,
  1245. 3.5862894 , 1.3184311 , 2.4205468 , 0.81315 , 1.2278372 ,
  1246. -2.4865801 , 2.5278285 , -2.171376 , 2.1631458 , -1.7143184 ,
  1247. -0.14616546, -4.6263876 , -3.9436617 , 0.14651997, 4.661728 ,
  1248. -0.7704933 , 1.3801682 , 0.5169989 , -0.2103552 , -2.8853152 ,
  1249. -0.25536552, -4.069642 , -2.7820284 , -2.0181065 , -1.46154 ,
  1250. -4.7664094 , -1.0506881 , -2.5283024 , 4.009021 , 2.048676 ,
  1251. -3.7096496 , 2.9024918 , 1.4760631 , -1.9187976 , 2.1183803 ,
  1252. 0.27686667, 1.1287348 , 1.9816763 , -1.2750002 , -1.2296219 ],
  1253. dtype=float32),
  1254. array([-1.5124674 , 0.50878215, -3.1402032 , 2.229698 , -0.09599537,
  1255. -2.2964287 , -0.68945426, -1.0589986 , -2.781555 , -0.06723034,
  1256. 4.158141 , 1.2368115 , -1.5827699 , 2.791237 , -1.7195306 ,
  1257. -3.465173 , -1.3324095 , -0.4520475 , 0.35167316, 0.45640752,
  1258. -2.4797971 , 0.31692824, -1.6052902 , -0.3480474 , 2.6350543 ,
  1259. -1.0058695 , -1.5651072 , 1.0999984 , -0.50460386, -3.7317476 ,
  1260. -0.74292517, -0.58817273, -0.43452442, -0.9335485 , 0.49476355,
  1261. 1.7497547 , -2.6563709 , -3.2137046 , 2.0271807 , 3.278373 ,
  1262. -2.4646285 , 1.2588855 , 3.0215778 , -1.3575342 , 2.6947966 ,
  1263. 3.177543 , 0.11919698, -0.45708773, 1.0423391 , 2.535163 ],
  1264. dtype=float32),
  1265. array([-3.2696891e+00, -1.7359172e+00, -3.8826938e+00, 9.0584761e-01,
  1266. -8.3760613e-01, -6.2052548e-01, -1.8671914e+00, -3.5967487e-01,
  1267. -2.8003154e+00, 2.8071225e+00, 3.0904043e+00, 1.4538515e+00,
  1268. -1.7122059e+00, 2.7503314e+00, 2.8129014e-01, -3.3779862e+00,
  1269. 3.9262906e-01, 1.5785449e+00, 1.0928631e+00, 5.2579459e-02,
  1270. 3.1872419e-01, -2.4606271e+00, -2.0661373e+00, -1.6775290e+00,
  1271. 2.6430542e+00, -9.6819896e-01, 4.4818915e-02, -1.0216330e+00,
  1272. -1.1032807e+00, -3.7352252e+00, -1.2521818e+00, -3.1648378e+00,
  1273. -4.5508975e-03, 3.5136142e-01, -9.3183577e-01, -2.0945578e+00,
  1274. 1.3481555e+00, -1.1144398e+00, 1.4039487e-01, 1.9550961e+00,
  1275. -1.4575121e+00, 8.1461811e-01, 4.8269916e+00, -2.4108291e+00,
  1276. 6.1543560e-01, 1.4117115e+00, 1.9532214e-01, 2.4634016e-01,
  1277. 1.3574973e+00, -9.7050947e-01], dtype=float32),
  1278. array([-5.1324749e+00, 2.7288942e+00, -8.2444391e+00, 6.1328835e+00,
  1279. -1.8459700e-01, -6.4972978e+00, 7.9462275e-02, -1.7201983e+00,
  1280. -6.6497474e+00, 9.7524816e-01, 5.7465506e+00, 9.1955787e-01,
  1281. -2.8346202e+00, 2.1602867e+00, -7.1278319e+00, 1.9040695e+00,
  1282. 5.4667854e-01, 5.2278490e+00, 1.7434002e+00, 4.9727392e+00,
  1283. -5.0541081e+00, -6.3795781e+00, -3.1856351e+00, -2.1926205e+00,
  1284. 6.6075559e+00, -3.9296160e+00, -3.0471344e+00, 4.1782379e+00,
  1285. -2.1429722e+00, -1.0632353e+01, -3.1756423e+00, -5.5226798e+00,
  1286. 2.4512212e+00, -2.0612075e+00, 3.4135578e+00, -6.0726345e-01,
  1287. 4.4022479e-05, -6.2727456e+00, -1.8170011e+00, 4.6804533e+00,
  1288. -2.1432230e+00, -1.7915859e+00, 6.9561309e-01, -9.8216474e-02,
  1289. 5.3203354e+00, 5.7364545e+00, -1.0255824e+00, -2.0298264e+00,
  1290. 3.8823662e+00, 8.0555305e+00], dtype=float32),
  1291. array([-4.05545950e-01, 1.14538825e+00, -3.42914009e+00, 2.28440809e+00,
  1292. 1.58534241e+00, -4.19013071e+00, -5.26176262e+00, -3.82249737e+00,
  1293. 2.32997939e-01, 1.26737893e-01, 2.08925056e+00, -1.06926255e-01,
  1294. 7.68504292e-02, 1.29154408e+00, 4.19106627e+00, -2.61425352e+00,
  1295. 2.89658976e+00, -1.36903262e+00, 3.39464517e-03, 7.65873432e-01,
  1296. -2.66872239e+00, -2.01700497e+00, -5.93260431e+00, -1.10965431e+00,
  1297. 4.51621771e+00, -1.02857089e+00, -7.32316673e-01, 2.56517100e+00,
  1298. 2.91717744e+00, -6.13980675e+00, 7.39542842e-01, -2.05194259e+00,
  1299. -2.52005100e+00, -7.73415983e-01, -1.36205018e+00, -1.58096659e+00,
  1300. -2.67574310e+00, -1.38949466e+00, 1.36559248e+00, 3.63272095e+00,
  1301. -2.78259301e+00, -6.68600142e-01, 8.43713462e-01, -2.05986881e+00,
  1302. 5.55537581e-01, 2.69475746e+00, -1.95466828e+00, -1.76232934e+00,
  1303. -1.65791965e+00, 2.97901225e+00], dtype=float32),
  1304. array([-0.88166547, 1.25905 , -4.04719 , 3.5637717 , -1.2868096 ,
  1305. -2.1588316 , -4.1787176 , -2.1883452 , -3.0037503 , 0.54048055,
  1306. 3.8636513 , -0.83307076, 0.0629492 , -0.22236659, 3.770396 ,
  1307. -3.6521235 , 2.6040428 , -2.6743984 , 1.8060249 , 1.7915667 ,
  1308. -4.531016 , -4.480909 , -4.4506598 , 0.0937117 , 3.5058253 ,
  1309. -1.3718314 , -0.8925634 , 1.6965436 , 1.9809576 , -5.6908216 ,
  1310. -2.2751603 , -1.2374145 , -0.9639795 , -0.41108894, -3.2553842 ,
  1311. -1.2580274 , -1.6018754 , 0.22192754, 2.4807804 , 2.8791203 ,
  1312. -4.318475 , -0.04912575, 1.5318376 , -2.8516393 , 3.6344378 ,
  1313. 4.5496316 , -0.18364485, -2.2095637 , -1.3174403 , 0.67530423],
  1314. dtype=float32),
  1315. array([-1.5021542 , -1.0412285 , -3.8911004 , 2.8929732 , 0.39053124,
  1316. -6.0188804 , -2.218203 , -0.5679325 , -3.4569533 , 1.3978891 ,
  1317. 2.788677 , 1.9039484 , -2.6051476 , 2.0882764 , 1.2164431 ,
  1318. -4.6588845 , 0.64700663, -2.5574508 , 3.1122425 , -1.4808344 ,
  1319. 0.69827735, -1.362724 , 0.61085534, -0.5865935 , 4.9498873 ,
  1320. -1.9617431 , 0.98018795, 1.2180952 , 2.60351 , -6.2134466 ,
  1321. 0.8060588 , 1.0213243 , 0.4364026 , -3.0781128 , 0.00773296,
  1322. 0.8479927 , -3.0033 , -3.185197 , 6.6952257 , 2.379226 ,
  1323. -4.9264474 , 0.37161383, 2.287793 , -3.4815078 , 4.960765 ,
  1324. -1.3704592 , 2.1451612 , -1.2566868 , -2.5727324 , 2.567066 ],
  1325. dtype=float32),
  1326. array([-8.6048 , -3.1494663 , -4.499252 , -2.2417724 , -4.737888 ,
  1327. -7.961338 , -7.268754 , -0.6980468 , -6.894301 , 1.3976961 ,
  1328. 5.262518 , 2.493326 , -4.536376 , 4.991297 , -2.5036788 ,
  1329. -3.204649 , 1.8152634 , -2.0498044 , 1.0431812 , -1.7023607 ,
  1330. -1.3903171 , -5.409643 , 0.28282577, -1.7856653 , 5.25031 ,
  1331. -3.4361355 , -2.0410533 , 3.8210053 , 0.722881 , -4.8125196 ,
  1332. 0.72682804, -1.4892291 , 0.7253539 , -1.4254017 , 0.3960936 ,
  1333. -3.7334104 , -3.02917 , -3.7707624 , 5.5534062 , 3.4971583 ,
  1334. -1.2117448 , 2.900982 , 5.34394 , -3.9476213 , 1.7281789 ,
  1335. 2.8526876 , 8.815099 , -3.3445067 , 0.09586909, 0.60621125],
  1336. dtype=float32),
  1337. array([ 2.4426138 , 0.08832847, -7.4904513 , -3.0761313 , 1.674917 ,
  1338. -3.9327407 , -2.5935202 , -0.49763542, -5.723602 , -3.6206188 ,
  1339. 3.6495318 , -2.7398133 , -4.7934365 , -2.268052 , -3.5544832 ,
  1340. -1.2811784 , 2.387219 , -2.7386818 , 0.9077764 , -1.3155574 ,
  1341. -0.04816894, -3.9114246 , 1.1081003 , -1.4145123 , 8.344147 ,
  1342. -5.109266 , -3.5285559 , 1.4286796 , -1.0815576 , -3.3141716 ,
  1343. -3.1345332 , -5.0839005 , 1.2272571 , -1.7491487 , -1.0370717 ,
  1344. 0.4405385 , -0.43157542, -3.8843281 , 5.3612113 , -0.5641273 ,
  1345. -2.562422 , 3.6542492 , -0.3774832 , -7.954472 , 2.0657334 ,
  1346. 4.1946273 , 0.28220057, 1.2879951 , -0.75785255, -0.09160534],
  1347. dtype=float32),
  1348. array([-8.96080281e-04, 5.74891269e-01, -1.18683219e+00, 1.43624854e+00,
  1349. -1.15247583e+00, -1.17184317e+00, -1.61170080e-01, -6.05674088e-01,
  1350. -1.86372310e-01, 5.36286533e-01, 4.69307989e-01, 1.46377790e+00,
  1351. -8.72143626e-01, 6.47982478e-01, 8.44477892e-01, -8.69297802e-01,
  1352. -8.29428613e-01, 6.76205456e-01, -1.13504780e-02, 8.94011438e-01,
  1353. 7.79047608e-01, 5.82162738e-02, -1.89911640e+00, -8.51194084e-01,
  1354. 1.13653493e+00, -1.53149033e+00, 1.68539250e+00, 1.62878916e-01,
  1355. 8.41287971e-01, -9.67921734e-01, 4.92456883e-01, -4.72715795e-01,
  1356. -5.96501455e-02, -1.46182132e+00, -2.04498351e-01, -3.94881010e-01,
  1357. 1.04283355e-01, 2.63527155e-01, 9.36310530e-01, 1.93435943e+00,
  1358. -7.06176221e-01, 7.55028427e-01, 7.83558249e-01, -6.95647776e-01,
  1359. 1.21959054e+00, 1.38704145e+00, -3.34446222e-01, -4.16285008e-01,
  1360. -1.79679304e-01, 2.34362110e-01], dtype=float32),
  1361. array([-3.652764 , 0.49369776, -3.9086368 , -0.27109528, -2.1171944 ,
  1362. -2.8957388 , -1.5670561 , -6.0314956 , -3.1831412 , -3.0268633 ,
  1363. 6.636505 , -4.982742 , -2.8791933 , 5.463108 , 0.90325975,
  1364. -1.7623285 , 3.278189 , 3.4626312 , 2.2831469 , -1.7130967 ,
  1365. 0.73403084, -3.096524 , 0.3947571 , -2.3883114 , 3.7826493 ,
  1366. -6.405869 , -0.04487539, 0.6232247 , 0.7338248 , -3.9224627 ,
  1367. 1.6737999 , -1.3454803 , 1.7512357 , 0.6267131 , 1.2276943 ,
  1368. -5.3551064 , 3.773286 , -5.0579543 , 2.4615948 , -0.4698493 ,
  1369. -1.4947072 , 4.8707366 , -1.6338202 , -5.7684274 , 2.5768914 ,
  1370. 0.8536939 , 1.137526 , -4.255319 , -2.1515715 , 0.8491926 ],
  1371. dtype=float32),
  1372. array([ 0.262666 , -0.6244969 , -2.065668 , 2.2071617 , -0.52115154,
  1373. -1.6998593 , -1.6651634 , -1.1358943 , -1.8750826 , 2.25881 ,
  1374. 1.6971445 , -0.726258 , -1.5277383 , 0.3099002 , 0.527059 ,
  1375. -2.3917627 , 0.7654532 , 0.01279707, 3.1902325 , 0.6246866 ,
  1376. -1.1351706 , -1.1342599 , -0.7613771 , 0.52514035, -0.20571248,
  1377. 0.46853113, 1.2684512 , 2.0203125 , -0.37489042, -1.9976461 ,
  1378. 0.09210854, -0.49139357, -1.1158336 , -1.443378 , -2.3561816 ,
  1379. -1.0668371 , -1.9075909 , -0.5995842 , 1.7897425 , -0.7393891 ,
  1380. -1.0104483 , 1.4505221 , -0.4360382 , -2.6684275 , 1.0261704 ,
  1381. 0.01643272, 1.4297862 , 0.1125207 , -1.1752658 , 0.6716009 ],
  1382. dtype=float32),
  1383. array([-1.4228733 , -2.9447472 , -3.157432 , 3.7890165 , 0.6610415 ,
  1384. 1.4472446 , -1.7099651 , -1.6756692 , -1.9351968 , 1.49087 ,
  1385. 1.9634938 , 0.27211806, 0.75363624, 2.6440034 , 0.7037815 ,
  1386. -3.2598305 , 2.361682 , -0.9626549 , 2.2565305 , -2.2045794 ,
  1387. -0.17353538, -2.2057736 , -2.7068596 , 1.2883108 , -0.35862738,
  1388. 0.29567403, -0.02809598, 0.42158136, 1.8932004 , -3.0032794 ,
  1389. -0.8166705 , -3.203104 , 0.15288098, -0.96328986, -1.2231251 ,
  1390. -1.9520813 , -0.15059993, 0.8021331 , -1.0509493 , 0.5614738 ,
  1391. -1.7730694 , 1.7932338 , 2.4250064 , 0.1194471 , -1.6024636 ,
  1392. 0.93960434, 0.93168116, -0.5817072 , -0.34948146, 1.875593 ],
  1393. dtype=float32),
  1394. array([-7.2516531e-02, 2.7068796e+00, -2.6287882e+00, 4.0404625e+00,
  1395. 8.1348157e-01, -2.2620382e+00, -2.0496428e+00, 3.1365025e-01,
  1396. -2.8506558e+00, -1.6123148e+00, 3.3952582e+00, 6.9979507e-01,
  1397. 3.8484940e-03, 2.8680494e+00, 3.0565000e+00, -1.7713106e+00,
  1398. 2.3128757e+00, 7.5891930e-01, 1.6065563e-01, -4.5504835e-01,
  1399. 1.4692998e-01, -3.2456281e+00, -2.4614520e+00, -6.5676373e-01,
  1400. 8.4091628e-01, -3.3532326e+00, -2.4914668e+00, -3.4350073e-01,
  1401. 1.1036438e+00, -7.5139475e-01, -3.8122883e+00, 1.3048935e+00,
  1402. 6.9256830e-01, -3.8154795e+00, -2.3074989e+00, -1.9320395e+00,
  1403. -3.0200872e+00, -2.1590044e+00, 2.9647026e+00, 2.7138343e+00,
  1404. -3.0792279e+00, 4.4409722e-01, 1.7272108e+00, -2.2837164e+00,
  1405. 3.3836784e+00, 1.2155501e+00, 9.6705325e-02, -1.9883410e+00,
  1406. -1.5367381e-01, 2.0252156e+00], dtype=float32),
  1407. array([-0.7651323 , 0.7283452 , -2.449931 , 0.05916925, -1.1982027 ,
  1408. -1.4725301 , -2.1388621 , -0.42548826, -2.1933796 , 0.5849036 ,
  1409. 1.6295409 , -0.30549255, -2.1167748 , 1.3403054 , -1.9490103 ,
  1410. -0.7489747 , 3.1872935 , 2.3573809 , 2.7344599 , 0.35571623,
  1411. 1.4391794 , -3.2003944 , -2.8651762 , 0.82755333, 0.528213 ,
  1412. -1.1364857 , -0.7217288 , 2.3220325 , 0.78000176, -2.2619674 ,
  1413. -1.2192525 , -1.6432091 , -0.22999005, 0.8412266 , 0.28579175,
  1414. 0.21002364, -1.1368592 , -1.5495977 , 2.6814644 , -0.619477 ,
  1415. -1.3114481 , 0.31256357, 0.01786213, -1.3677334 , 2.4279356 ,
  1416. -0.4506748 , 0.5003366 , -0.7466281 , 0.76826274, -1.7134072 ],
  1417. dtype=float32),
  1418. array([ 0.48193666, -0.4615601 , -1.7369747 , 0.9240203 , -0.23880039,
  1419. 0.01795953, -1.6672522 , -1.1271417 , -0.79723203, 0.36601394,
  1420. 1.7878264 , 0.12948994, -1.0766374 , 2.0650635 , 0.7846634 ,
  1421. -1.7809906 , -0.13437532, -0.47467956, -0.13594587, 0.70380694,
  1422. 1.613389 , -0.9774934 , -0.2194083 , -0.4149024 , 0.9870242 ,
  1423. -1.4040333 , -0.04331245, 1.9328284 , -0.08507117, -0.725754 ,
  1424. -0.3556484 , -1.5617899 , 0.3364396 , -0.7302984 , -0.4731077 ,
  1425. -1.0426451 , 0.39876243, -0.15359437, 1.0549039 , 0.9377096 ,
  1426. -1.1092587 , 1.0855448 , 0.22121264, -0.53903043, 3.0237532 ,
  1427. 0.06724988, -1.5711604 , 0.953862 , 2.83183 , 0.6530824 ],
  1428. dtype=float32),
  1429. array([-8.01887417e+00, -2.57120585e+00, -5.14613867e+00, -1.37268794e+00,
  1430. -1.09809436e-01, -1.10030818e+00, 3.99879766e+00, -3.65783668e+00,
  1431. -4.67996264e+00, -6.77447379e-01, 5.22847700e+00, -4.51294193e-03,
  1432. -1.47227407e+00, 2.60466909e+00, -5.14780617e+00, -2.43000317e+00,
  1433. 4.50027585e-01, -4.24210340e-01, 3.76913953e+00, 2.81751847e+00,
  1434. -8.63359392e-01, -2.58749890e+00, 1.20625570e-01, -3.35707831e+00,
  1435. 7.50516415e+00, -2.79950404e+00, 1.05864077e-03, 2.68213367e+00,
  1436. -1.57612693e+00, -6.13909960e+00, -2.45653701e+00, -4.30718946e+00,
  1437. -1.82031155e+00, -1.15106356e+00, 5.34545898e-01, 1.43468475e+00,
  1438. 1.28482783e+00, -6.80550718e+00, 1.15252745e+00, 1.53560054e+00,
  1439. -4.63113546e+00, -3.72160256e-01, -8.39702547e-01, -9.49723363e-01,
  1440. 4.96827650e+00, 3.87182713e+00, 8.61687779e-01, 1.67494440e+00,
  1441. -6.72161162e-01, 5.61438704e+00], dtype=float32),
  1442. array([-2.6395175 , -0.12836823, -6.8942122 , 1.7380596 , -6.2607474 ,
  1443. -0.5927968 , -2.619384 , -0.26365817, 0.95654726, 1.1802195 ,
  1444. 7.73353 , 1.5063063 , -0.44891915, 1.3508899 , -0.9286867 ,
  1445. -5.5960646 , -0.61188936, 2.2318606 , 0.37512508, 1.3417227 ,
  1446. 1.6642658 , -5.5684185 , 2.9916713 , -4.1837735 , 1.642993 ,
  1447. -3.8114014 , -2.2595828 , -0.35626593, 1.5802765 , -1.975735 ,
  1448. 0.01730982, -2.8957076 , 0.02462315, 0.72200984, 1.8633212 ,
  1449. 0.5339153 , -3.2103188 , -0.12692635, 1.8565687 , 2.2109528 ,
  1450. -1.4767433 , 0.54562825, -2.3592486 , -2.7985704 , 2.823981 ,
  1451. 0.898142 , -0.06687623, -3.878774 , -0.4375655 , 1.4341836 ],
  1452. dtype=float32),
  1453. array([-0.60602725, -1.9233261 , -1.5422956 , 0.2659486 , -0.29605228,
  1454. -4.869786 , -3.665349 , -4.9211044 , -3.5131483 , 0.6530348 ,
  1455. 5.965836 , -0.01733457, -3.9771197 , -0.93172294, -1.6704978 ,
  1456. -0.5284833 , 3.970528 , -1.0683626 , -0.8892407 , -0.54103065,
  1457. -1.178416 , -1.7718471 , 2.484806 , -1.6028157 , 4.7225246 ,
  1458. -1.6071239 , -0.634551 , 0.14959988, 0.72681314, -3.4968278 ,
  1459. -2.767768 , -1.6478008 , -1.9078573 , -1.9094671 , 2.5353506 ,
  1460. -1.2205718 , 0.98700285, -1.2720888 , 5.416749 , 1.494571 ,
  1461. -0.80303645, 0.00907951, 4.28081 , -5.587768 , 7.3740582 ,
  1462. -1.2002116 , 2.1931145 , -1.7470553 , 2.1205957 , 3.8235993 ],
  1463. dtype=float32),
  1464. array([-2.1477196 , 0.18968214, -5.990294 , -0.6914943 , -0.32038072,
  1465. -0.09420102, -3.1620903 , -2.2501667 , -0.87898254, -1.5722065 ,
  1466. 3.4701111 , 2.9288526 , -0.91527784, -0.03232937, 3.0359125 ,
  1467. -1.1382674 , 2.9576285 , -4.7027907 , 2.8150313 , -2.513927 ,
  1468. -0.92789966, -3.0657425 , -0.07396379, -2.9385252 , 1.5357203 ,
  1469. -2.256906 , -1.2066938 , 3.6541839 , 0.18357909, 0.36379215,
  1470. -3.5604632 , -5.861798 , -2.4242594 , -3.309994 , 3.4369676 ,
  1471. -1.2317206 , -1.2826682 , 0.19874308, 2.2178712 , 2.3275378 ,
  1472. -5.4568615 , -0.35027382, 2.3642964 , -4.7372885 , 3.7142549 ,
  1473. -1.185355 , 2.777849 , -2.3756325 , -1.9151214 , -0.6433463 ],
  1474. dtype=float32),
  1475. array([ 7.9589045e-01, -3.4912701e+00, -1.2564459e+01, -3.3415072e+00,
  1476. 6.3978547e-01, -9.7964783e+00, -5.5006533e+00, -3.6678326e+00,
  1477. -3.0652344e+00, -5.6586871e+00, 4.7062907e+00, -1.6438034e+00,
  1478. -9.3217468e+00, 2.0121832e+00, 3.0433650e+00, -5.3524671e+00,
  1479. 6.5430746e+00, -1.4197952e+00, 1.2658095e+00, 1.1942903e+00,
  1480. 2.5666189e+00, -9.5480242e+00, -2.7417833e-01, 4.2319050e+00,
  1481. 6.2172303e+00, -4.7939272e+00, -4.3711638e+00, -1.0635561e+00,
  1482. -4.8381658e+00, -6.3070574e+00, -9.0208302e+00, -7.4332147e+00,
  1483. 1.1998453e-02, 2.2525368e+00, 8.2356423e-01, 2.7517266e+00,
  1484. 1.9788646e+00, -3.4871676e+00, 9.7740135e+00, -4.2884068e+00,
  1485. -5.5868645e+00, 2.8464413e+00, -6.0699624e-01, -7.3857832e+00,
  1486. 3.7307727e+00, 4.7029996e+00, 4.7252793e+00, -2.3632619e+00,
  1487. -1.6831889e+00, 6.6940165e+00], dtype=float32),
  1488. array([-2.211999 , -0.28501084, -4.047891 , 1.1024194 , 0.23589934,
  1489. 0.05446298, -0.6200688 , -0.3324168 , -0.72237605, 0.15203467,
  1490. 2.0595772 , 3.3311865 , 0.14258704, 3.2589092 , -0.69006604,
  1491. -2.6029377 , -0.8438689 , 0.38139045, -0.46129274, 0.802136 ,
  1492. 0.44612506, -2.2811174 , -1.5670197 , -1.550609 , 1.5416155 ,
  1493. -0.4757748 , -0.7883196 , 0.92958194, 0.53772026, -2.5632966 ,
  1494. 0.3250599 , -2.6119123 , 0.90254104, -0.75035506, 0.34655726,
  1495. -0.6371786 , -0.3835782 , -0.19796462, 1.6120073 , 1.8305508 ,
  1496. -0.7345159 , -0.4431574 , 1.515813 , -1.9799078 , 2.3708904 ,
  1497. 1.2414037 , 0.28115472, 0.26906595, 1.897232 , 0.8084707 ],
  1498. dtype=float32),
  1499. array([-1.2867701e+00, -2.6593425e+00, -3.5429125e+00, 3.5350597e+00,
  1500. 6.6118151e-01, -2.1710665e+00, -4.2441101e+00, -3.6948791e+00,
  1501. 7.9394780e-02, 1.4551428e-01, 3.7726399e-01, -1.9470860e-01,
  1502. -1.7188504e+00, 1.7094049e+00, 5.8747250e-01, -4.0119100e+00,
  1503. 7.8572881e-01, 2.6569724e-01, 2.7646377e+00, -4.2394060e-01,
  1504. 2.1566761e+00, -4.3631516e+00, -5.2615780e-01, -9.1233522e-01,
  1505. 2.7117190e+00, -1.8980520e+00, -2.9199247e+00, -1.1496322e+00,
  1506. 1.1202153e-01, -4.1682598e-01, -7.3299557e-01, -3.6905441e-03,
  1507. 8.0593544e-01, -2.3582320e+00, 2.3317158e+00, 2.6249710e-01,
  1508. -3.2905504e-01, -2.0199962e+00, 1.8909914e+00, 2.4630463e+00,
  1509. 1.7292595e-01, 2.8043091e-01, 4.1850659e-01, 2.8448704e-01,
  1510. 2.0137544e+00, 9.4030595e-01, -1.0615480e+00, -7.3179519e-01,
  1511. 1.1720155e+00, -2.1269789e+00], dtype=float32),
  1512. array([ 3.0243635 , -1.0096202 , -8.633717 , 0.22268233, 4.057211 ,
  1513. -0.4800034 , -5.8232856 , 0.1331001 , -1.5875671 , 3.002961 ,
  1514. -0.7413641 , 5.4237556 , -5.170267 , 1.7056127 , -1.3650994 ,
  1515. -0.16615808, 2.7877939 , 1.9193563 , 3.5910318 , -1.4135339 ,
  1516. -3.4428508 , -2.8408468 , -2.2538254 , 0.84606177, -1.0139132 ,
  1517. -2.707819 , -3.229932 , -0.40365237, 0.43163016, -3.0181046 ,
  1518. 3.2291927 , -1.7963424 , -3.7582545 , 1.7090752 , 3.6994257 ,
  1519. -1.1833471 , -0.42647433, -1.2117865 , -1.2347965 , 1.3360693 ,
  1520. -2.0269659 , 0.04429046, -3.1568367 , -4.8213143 , 1.0358423 ,
  1521. 0.8707557 , -0.5278248 , 2.8764396 , -3.7866092 , -4.2309475 ],
  1522. dtype=float32),
  1523. array([-0.6560858 , 3.7285802 , -5.1505795 , 2.5166843 , 4.286769 ,
  1524. -4.463761 , -6.2536306 , -4.0893397 , 3.5169046 , 7.851233 ,
  1525. 6.8743324 , -0.43599683, -6.0158873 , -4.3217473 , 7.028004 ,
  1526. -2.906725 , 7.154679 , -1.9026358 , -2.9660156 , -3.368565 ,
  1527. 1.567063 , -1.0057449 , 2.1921983 , -6.931566 , 0.8962321 ,
  1528. -0.65908635, -8.502689 , 0.2732329 , -1.2250317 , -3.8899605 ,
  1529. 2.6861916 , -0.16476011, 0.44780254, 1.82632 , 6.570242 ,
  1530. -1.4047325 , -7.92583 , 1.2810512 , 4.688771 , 4.711916 ,
  1531. 4.010506 , 2.8522785 , -5.3089285 , -5.3450127 , 1.7733957 ,
  1532. 2.0393677 , -5.1350083 , 2.6313906 , 2.5379348 , -4.4329658 ],
  1533. dtype=float32),
  1534. array([ 0.36551392, -1.226075 , -4.2089944 , 0.17894107, 0.5839053 ,
  1535. 0.10248996, -2.4263942 , 0.16283844, -1.9852264 , 1.0889586 ,
  1536. -0.6405807 , 1.405351 , -2.5047004 , 0.9047477 , 0.3163918 ,
  1537. -4.516186 , 1.2738794 , -0.7988195 , 1.2285862 , -0.55358964,
  1538. 1.08133 , 0.1535823 , -2.3925922 , -2.5521219 , -0.99596983,
  1539. -0.60717887, -3.0447183 , 0.2096077 , -0.28735656, -1.8870078 ,
  1540. -0.02697642, -0.56464773, -0.97926927, -1.8167175 , 0.09095485,
  1541. -1.6272099 , -0.09028546, 1.1326776 , 1.3150907 , 0.44695047,
  1542. 0.537899 , 0.6304419 , 0.4520671 , -1.0867704 , 1.1077741 ,
  1543. 1.5982028 , -1.6846375 , 0.00706123, -0.31193727, 2.3997564 ],
  1544. dtype=float32),
  1545. array([ -5.4868546 , 7.488037 , -4.254789 , 3.172912 ,
  1546. 5.675617 , 6.8355007 , -16.443588 , -5.687075 ,
  1547. 3.366113 , 1.5769037 , 9.650104 , 2.156261 ,
  1548. -11.27323 , 6.2951026 , 4.0384693 , -6.549509 ,
  1549. 1.0623959 , 5.41797 , -0.15425736, 0.2254335 ,
  1550. 6.5568547 , 1.4099941 , -0.5275327 , -12.87789 ,
  1551. -3.6642873 , -6.2862854 , -6.971978 , 4.766436 ,
  1552. -5.520179 , -2.8197615 , -7.7922463 , -12.204301 ,
  1553. -1.3054581 , -12.484695 , 2.7148864 , -3.7674282 ,
  1554. 1.8760666 , 0.8006448 , 0.7298786 , 3.0589385 ,
  1555. -8.82399 , 4.6840715 , 2.4377053 , 5.9778833 ,
  1556. 3.8028855 , 8.513558 , -1.261112 , 2.5232832 ,
  1557. 7.4865904 , -6.7834907 ], dtype=float32),
  1558. array([ -4.158109 , -2.7788448 , -6.4223127 , 3.770629 ,
  1559. 8.838926 , -4.058097 , -1.0915556 , 3.9542816 ,
  1560. -3.958479 , 8.977063 , 7.0732226 , -2.4085257 ,
  1561. -3.3119533 , -3.8017387 , -6.5215406 , 1.8022003 ,
  1562. 9.695016 , -6.1472683 , -0.10613222, -0.9049465 ,
  1563. 2.5840552 , 1.6503668 , -10.32817 , -2.6748686 ,
  1564. 5.1034603 , -0.68524337, -2.198762 , -0.05506033,
  1565. 1.8757668 , 7.207156 , 3.5556736 , 4.111174 ,
  1566. 5.9072337 , 7.383213 , 2.1501763 , 0.5082557 ,
  1567. 2.0289152 , 1.126923 , 6.121209 , -0.34888572,
  1568. -7.920319 , 6.913986 , -0.30951935, -8.077336 ,
  1569. 5.24015 , 1.3209654 , -0.77976453, 1.5188115 ,
  1570. -2.6212583 , -7.0682545 ], dtype=float32),
  1571. array([ 0.41773868, 1.4244672 , -2.0184076 , -0.4833841 , -0.10037503,
  1572. -0.5175632 , -1.7907465 , -0.5550252 , -0.3631414 , 0.96922606,
  1573. 1.6805147 , 0.6425223 , -1.2232468 , 0.32816145, 0.22905768,
  1574. -1.634131 , 0.32642654, 1.8511392 , 2.1350436 , -1.0482274 ,
  1575. 0.890391 , -1.6164271 , 0.10432418, -1.6971469 , -0.6541426 ,
  1576. -0.7463648 , -0.9215097 , -0.24968463, -0.3307862 , -1.5695244 ,
  1577. -0.9768871 , -3.4948866 , 1.2843345 , -0.838394 , 0.90282375,
  1578. -0.6139187 , -0.9056764 , -1.1473341 , 1.8936399 , 0.6096239 ,
  1579. -0.62557733, 0.6123564 , 0.09406942, -1.5800968 , 2.5224352 ,
  1580. 1.6997999 , -0.39873627, 1.4452107 , 0.35947257, -0.39201987],
  1581. dtype=float32),
  1582. array([ 4.0216129e-03, 3.0162418e+00, -8.4922695e+00, -6.0584474e-01,
  1583. 3.6585882e+00, -3.7768416e+00, -6.1633301e+00, 1.1381928e+00,
  1584. -3.3171396e+00, 7.7610784e+00, 2.9840393e+00, 7.3152704e+00,
  1585. -3.3715067e+00, 3.2745261e+00, 1.1323998e+00, -6.8160663e+00,
  1586. 7.9373039e-02, 2.5350993e+00, -2.0526801e-01, 1.8689213e+00,
  1587. 2.3788543e+00, -5.0470748e+00, -2.5816340e+00, 3.7316695e-01,
  1588. -1.9953935e+00, 1.5152843e+00, -7.7281708e-01, 9.0880775e-01,
  1589. -3.1356674e-01, 1.3875738e+00, 4.6594186e+00, -3.1695673e+00,
  1590. -1.5709332e+00, 1.4673213e+00, 6.9668198e+00, 3.4880252e+00,
  1591. 1.8163211e+00, 1.2079127e+00, 6.1357874e-01, 3.0086243e+00,
  1592. 4.2110472e+00, 2.5825026e+00, -4.8156399e-01, -5.3814282e+00,
  1593. 2.8456881e+00, 4.0908632e+00, 9.1888511e-01, 9.4120800e-01,
  1594. 2.0219476e+00, 4.5976676e-02], dtype=float32),
  1595. array([ -2.4765556 , -6.183489 , -4.2662406 , 6.008643 ,
  1596. 4.657548 , -0.25687674, -0.2663331 , -4.4033465 ,
  1597. -1.7921611 , 5.8778 , 4.113735 , 9.386782 ,
  1598. 5.106176 , 3.2948534 , 3.5163975 , 4.078985 ,
  1599. 6.0130267 , -0.26868424, 8.652769 , 6.67795 ,
  1600. -3.3858285 , -12.021762 , -9.864059 , -4.8677683 ,
  1601. 5.3807564 , 0.27453575, -4.1727304 , -1.7020535 ,
  1602. -1.4267936 , 9.024409 , 0.45953423, -6.4472036 ,
  1603. 3.2788777 , -14.472455 , 1.6044165 , -4.0939636 ,
  1604. 7.7070827 , -10.540449 , 5.0837264 , -4.767573 ,
  1605. -1.748409 , 4.610726 , 1.0874977 , -0.87391514,
  1606. 3.9849086 , -5.3008327 , -10.329742 , 5.632445 ,
  1607. -1.216393 , -5.982228 ], dtype=float32),
  1608. array([-8.418395 , -3.2651222 , -2.823147 , 5.203143 , 1.6922735 ,
  1609. -3.7508612 , -3.1014056 , 5.3356385 , -5.831052 , 8.054489 ,
  1610. 1.982113 , 3.720995 , -5.4296966 , 4.206392 , -2.5725133 ,
  1611. -4.017426 , 3.4986649 , 3.7234359 , 1.1152993 , 0.5352544 ,
  1612. 5.4487085 , -0.7275246 , -6.5461254 , -1.1314836 , 0.86322546,
  1613. -2.5226343 , -8.302812 , -2.5113325 , -5.3112435 , 6.767439 ,
  1614. 3.9458492 , -0.593468 , -3.4299529 , 1.2855657 , 4.5839834 ,
  1615. 3.5863838 , -2.840134 , 0.8243007 , 0.7003752 , 3.4130113 ,
  1616. -1.4135901 , 6.4915953 , 2.0720725 , -3.9231777 , 7.9834423 ,
  1617. -4.58373 , -2.1156242 , -2.5640743 , 0.13025388, -7.681187 ],
  1618. dtype=float32),
  1619. array([-0.6921916 , -4.884759 , -3.6584022 , 1.9266632 , 2.6957364 ,
  1620. -0.8302339 , -6.4521437 , 2.8668666 , 1.9324521 , 2.8991165 ,
  1621. 4.793596 , 3.4479585 , -5.6164713 , 1.3458599 , 3.9048526 ,
  1622. -6.5847235 , 9.514498 , -5.3740206 , 1.0733851 , 1.7318085 ,
  1623. 4.6782465 , -3.194905 , -7.5134697 , -5.774303 , -3.6434395 ,
  1624. 2.7423828 , -8.16527 , -3.4392757 , -2.0169256 , 1.4905617 ,
  1625. -1.2666652 , -2.0983908 , -1.5917883 , -6.126642 , 0.91238576,
  1626. -2.4760354 , 4.1661477 , -0.99272454, 1.6775082 , -5.508968 ,
  1627. -0.14405428, 1.2312834 , -2.2538166 , -4.100603 , 3.2471678 ,
  1628. 2.3019304 , 1.3338035 , -1.8823177 , 7.2760024 , -0.53283215],
  1629. dtype=float32),
  1630. array([ 0.26512897, 6.437027 , -7.7377663 , -0.24663025,
  1631. 2.665687 , -3.5743864 , -8.661696 , 2.457601 ,
  1632. -4.50515 , 3.068119 , 9.021222 , 4.128136 ,
  1633. -10.247186 , -0.1499388 , 3.8004582 , -5.95034 ,
  1634. 3.4471874 , -11.903383 , -3.148306 , 6.366487 ,
  1635. 10.82822 , -5.367237 , -5.1563954 , -2.4925652 ,
  1636. -3.9828076 , 4.213173 , -3.8822865 , 3.920661 ,
  1637. 1.6792443 , 5.7080617 , 3.07975 , 2.422 ,
  1638. -2.2950404 , -0.07295765, 3.4435868 , -2.1354935 ,
  1639. 6.19709 , -0.58061093, 1.6382192 , -5.1144533 ,
  1640. 1.3432285 , 7.65929 , -5.5189323 , -2.1652887 ,
  1641. -1.4978749 , 6.5870695 , -3.38272 , -4.8199105 ,
  1642. 4.249749 , -3.8379445 ], dtype=float32),
  1643. array([ -7.477579 , -6.817567 , -2.7797878 , 6.4998755 ,
  1644. 5.8168974 , 3.6323557 , -0.8391511 , 0.44753128,
  1645. -14.120659 , 10.04722 , -4.3698225 , 12.048142 ,
  1646. -7.375485 , 4.308451 , -5.435967 , 2.9950838 ,
  1647. 8.199779 , -4.0707603 , -7.4488797 , 1.0045704 ,
  1648. 4.631533 , -7.3482385 , -4.119342 , 0.2832815 ,
  1649. -1.1041589 , 3.9681644 , 4.2842765 , 10.170346 ,
  1650. 1.5605596 , -1.7065666 , -9.602238 , -2.8099816 ,
  1651. 0.31498063, -9.604476 , 3.7590163 , 0.48385754,
  1652. -4.883654 , -9.001733 , 2.5856261 , 8.461319 ,
  1653. -6.434987 , 7.7784467 , 3.954277 , -3.9959466 ,
  1654. 5.8095703 , 0.8386185 , -8.956342 , -4.755187 ,
  1655. 2.2389002 , -6.5759807 ], dtype=float32),
  1656. array([ -0.59394205, -2.1338985 , -1.1536092 , 7.931626 ,
  1657. 4.859502 , 6.3058233 , -1.0392525 , -0.4598253 ,
  1658. 4.1813703 , 7.0900345 , 5.5304375 , -7.1943417 ,
  1659. -9.669599 , -1.2283722 , 7.7237763 , 0.5560824 ,
  1660. 7.305073 , 1.6863823 , 3.238169 , -2.9865787 ,
  1661. -1.2958804 , 0.2872353 , -2.7365623 , -7.2514663 ,
  1662. -0.08319507, -3.560729 , -0.34922564, -4.5864296 ,
  1663. -4.16969 , -1.1991464 , 3.9548316 , -6.292881 ,
  1664. -8.194931 , -4.6871247 , -3.0879602 , -11.243142 ,
  1665. -2.3267071 , 2.5402207 , -3.1234145 , -4.0602713 ,
  1666. -0.3722311 , 7.4528704 , 4.682079 , -3.5803952 ,
  1667. 6.106012 , 4.3728194 , 4.3836412 , -0.9423483 ,
  1668. 0.71285564, -5.124211 ], dtype=float32)]</pre>
  1669. </div>
  1670. </div>
  1671. </div>
  1672. </div>
  1673. </div>
  1674. <div class="cell border-box-sizing code_cell rendered">
  1675. <div class="input">
  1676. <div class="inner_cell">
  1677. <div class="input_area">
  1678. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">vectors</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">asarray</span><span class="p">(</span><span class="n">vectors</span><span class="p">)</span>
  1679. </pre></div>
  1680. </div>
  1681. </div>
  1682. </div>
  1683. </div>
  1684. <div class="cell border-box-sizing code_cell rendered">
  1685. <div class="input">
  1686. <div class="inner_cell">
  1687. <div class="input_area">
  1688. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">vectors</span><span class="o">.</span><span class="n">shape</span>
  1689. </pre></div>
  1690. </div>
  1691. </div>
  1692. </div>
  1693. <div class="output_wrapper">
  1694. <div class="output">
  1695. <div class="output_area">
  1696. <div class="output_text output_subarea output_execute_result">
  1697. <pre>(87, 50)</pre>
  1698. </div>
  1699. </div>
  1700. </div>
  1701. </div>
  1702. </div>
  1703. <div class="cell border-box-sizing code_cell rendered">
  1704. <div class="input">
  1705. <div class="inner_cell">
  1706. <div class="input_area">
  1707. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">tsne</span> <span class="o">=</span> <span class="n">TSNE</span><span class="p">(</span><span class="n">n_components</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">random_state</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
  1708. <span class="n">vectors</span> <span class="o">=</span> <span class="n">tsne</span><span class="o">.</span><span class="n">fit_transform</span><span class="p">(</span><span class="n">vectors</span><span class="p">)</span>
  1709. </pre></div>
  1710. </div>
  1711. </div>
  1712. </div>
  1713. </div>
  1714. <div class="cell border-box-sizing code_cell rendered">
  1715. <div class="input">
  1716. <div class="inner_cell">
  1717. <div class="input_area">
  1718. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">df_reduced_vector</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">(</span><span class="n">vectors</span><span class="p">,</span><span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;tsne1&#39;</span><span class="p">,</span> <span class="s1">&#39;tsne2&#39;</span><span class="p">])</span>
  1719. </pre></div>
  1720. </div>
  1721. </div>
  1722. </div>
  1723. </div>
  1724. <div class="cell border-box-sizing code_cell rendered">
  1725. <div class="input">
  1726. <div class="inner_cell">
  1727. <div class="input_area">
  1728. <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#check here: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.plot.scatter.html</span>
  1729. <span class="n">df_reduced_vector</span><span class="o">.</span><span class="n">head</span><span class="p">()</span>
  1730. </pre></div>
  1731. </div>
  1732. </div>
  1733. </div>
  1734. <div class="output_wrapper">
  1735. <div class="output">
  1736. <div class="output_area">
  1737. <div class="output_html rendered_html output_subarea output_execute_result">
  1738. <div>
  1739. <style scoped>
  1740. .dataframe tbody tr th:only-of-type {
  1741. vertical-align: middle;
  1742. }
  1743. .dataframe tbody tr th {
  1744. vertical-align: top;
  1745. }
  1746. .dataframe thead th {
  1747. text-align: right;
  1748. }
  1749. </style>
  1750. <table border="1" class="dataframe">
  1751. <thead>
  1752. <tr style="text-align: right;">
  1753. <th></th>
  1754. <th>tsne1</th>
  1755. <th>tsne2</th>
  1756. </tr>
  1757. </thead>
  1758. <tbody>
  1759. <tr>
  1760. <th>0</th>
  1761. <td>-113.940987</td>
  1762. <td>-34.413414</td>
  1763. </tr>
  1764. <tr>
  1765. <th>1</th>
  1766. <td>-72.304749</td>
  1767. <td>-85.056465</td>
  1768. </tr>
  1769. <tr>
  1770. <th>2</th>
  1771. <td>-54.885780</td>
  1772. <td>-34.727982</td>
  1773. </tr>
  1774. <tr>
  1775. <th>3</th>
  1776. <td>7.314480</td>
  1777. <td>100.819092</td>
  1778. </tr>
  1779. <tr>
  1780. <th>4</th>
  1781. <td>-55.143200</td>
  1782. <td>-64.941833</td>
  1783. </tr>
  1784. </tbody>
  1785. </table>
  1786. </div>
  1787. </div>
  1788. </div>
  1789. </div>
  1790. </div>
  1791. </div>
  1792. <div class="cell border-box-sizing code_cell rendered">
  1793. <div class="input">
  1794. <div class="inner_cell">
  1795. <div class="input_area">
  1796. <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#TODO Visualize more than one system in the same plot </span>
  1797. <span class="n">ax1</span> <span class="o">=</span> <span class="n">df_reduced_vector</span><span class="o">.</span><span class="n">plot</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="s1">&#39;tsne1&#39;</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="s1">&#39;tsne2&#39;</span><span class="p">)</span>
  1798. </pre></div>
  1799. </div>
  1800. </div>
  1801. </div>
  1802. <div class="output_wrapper">
  1803. <div class="output">
  1804. <div class="output_area">
  1805. <div class="output_png output_subarea ">
  1806. <img src="data:image/png;base64,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
  1807. "
  1808. >
  1809. </div>
  1810. </div>
  1811. </div>
  1812. </div>
  1813. </div>
  1814. <div class="cell border-box-sizing code_cell rendered">
  1815. <div class="input">
  1816. <div class="inner_cell">
  1817. <div class="input_area">
  1818. <div class=" highlight hl-ipython3"><pre><span></span><span class="o">!</span> nbdev_build_docs
  1819. </pre></div>
  1820. </div>
  1821. </div>
  1822. </div>
  1823. </div>
  1824. </div>
Tip!

Press p or to see the previous file or, n or to see the next file

Comments

Loading...