Add callgraphs to docs

This commit is contained in:
eyedeekay
2025-02-26 21:03:51 -05:00
parent ea4d126358
commit 91d8b30495
71 changed files with 11843 additions and 11843 deletions

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/bootstrap"
![bootstrap.svg](bootstrap)
![bootstrap.svg](bootstrap.svg)
provides generic interfaces for initial bootstrap into network and network
### reseeding

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/common/base32"
![base32.svg](base32)
![base32.svg](base32.svg)
Package base32 implmenets utilities for encoding and decoding text using I2P's
### alphabet

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/common/base64"
![base64.svg](base64)
![base64.svg](base64.svg)
Package base64 implmenets utilities for encoding and decoding text using I2P's
### alphabet

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/common/certificate"
![certificate.svg](certificate)
![certificate.svg](certificate.svg)

View File

@ -49,9 +49,9 @@
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.readCertificate -->
<g id="node1" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.readCertificate</title>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.readCertificate | defined in certificate.go:150&#10;at certificate.go:161: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:171: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:179: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:159: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:169: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:178: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:182: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:192: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:193: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:160: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at certificate.go:170: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at certificate.go:188: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at certificate.go:194: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at certificate.go:156: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at certificate.go:166: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at certificate.go:180: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at certificate.go:191: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M879.924,-616C879.924,-616 796.587,-616 796.587,-616 790.587,-616 784.587,-610 784.587,-604 784.587,-604 784.587,-592 784.587,-592 784.587,-586 790.587,-580 796.587,-580 796.587,-580 879.924,-580 879.924,-580 885.924,-580 891.924,-586 891.924,-592 891.924,-592 891.924,-604 891.924,-604 891.924,-610 885.924,-616 879.924,-616"/>
<text text-anchor="middle" x="838.2555" y="-593.8" font-family="Verdana" font-size="14.00" fill="#000000">readCertificate</text>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.readCertificate | defined in certificate.go:150&#10;at certificate.go:194: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at certificate.go:160: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at certificate.go:170: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at certificate.go:188: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at certificate.go:161: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:171: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:179: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:159: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:169: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:178: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:182: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:192: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:193: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:156: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at certificate.go:166: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at certificate.go:180: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at certificate.go:191: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M879.924,-615C879.924,-615 796.587,-615 796.587,-615 790.587,-615 784.587,-609 784.587,-603 784.587,-603 784.587,-591 784.587,-591 784.587,-585 790.587,-579 796.587,-579 796.587,-579 879.924,-579 879.924,-579 885.924,-579 891.924,-585 891.924,-591 891.924,-591 891.924,-603 891.924,-603 891.924,-609 885.924,-615 879.924,-615"/>
<text text-anchor="middle" x="838.2555" y="-592.8" font-family="Verdana" font-size="14.00" fill="#000000">readCertificate</text>
</a>
</g>
</g>
@ -66,10 +66,10 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.readCertificate&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge1" class="edge">
<g id="edge17" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.readCertificate&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge1"><a xlink:title="at certificate.go:161: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:171: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:179: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M886.4028,-579.9257C899.4083,-572.9704 912.3633,-563.786 921.3902,-552 962.5848,-498.2145 971.7912,-319.8683 994.3902,-256 1009.3883,-213.6131 1032.5644,-166.915 1047.601,-138.2675"/>
<g id="a_edge17"><a xlink:title="at certificate.go:161: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:171: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:179: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M887.6922,-578.8268C900.2566,-572.1105 912.6559,-563.2952 921.3902,-552 962.8333,-498.4057 971.7912,-319.8683 994.3902,-256 1009.3883,-213.6131 1032.5644,-166.915 1047.601,-138.2675"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1050.7756,-139.7516 1052.3648,-129.2766 1044.5902,-136.4742 1050.7756,-139.7516"/>
</a>
</g>
@ -85,18 +85,18 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.readCertificate&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge27" class="edge">
<g id="edge39" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.readCertificate&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge27"><a xlink:title="at certificate.go:156: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at certificate.go:166: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at certificate.go:180: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at certificate.go:191: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M862.5769,-616.118C892.6089,-638.0322 945.7,-675.2985 994.3902,-702 999.2679,-704.6749 1004.4313,-707.2999 1009.6456,-709.816"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1008.4955,-713.1421 1019.0359,-714.2144 1011.4647,-706.8031 1008.4955,-713.1421"/>
<g id="a_edge39"><a xlink:title="at certificate.go:156: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at certificate.go:166: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at certificate.go:180: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at certificate.go:191: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M862.2851,-615.121C892.2409,-637.2428 945.472,-675.0325 994.3902,-702 999.262,-704.6857 1004.4214,-707.3179 1009.6333,-709.8383"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1008.4809,-713.1637 1019.0207,-714.242 1011.4538,-706.8263 1008.4809,-713.1637"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="node18" class="node">
<g id="node19" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_node18"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).Error | defined in log.go:42">
<g id="a_node19"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).Error | defined in log.go:42">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M1080.1334,-689C1080.1334,-689 1044.6008,-689 1044.6008,-689 1038.6008,-689 1032.6008,-683 1032.6008,-677 1032.6008,-677 1032.6008,-665 1032.6008,-665 1032.6008,-659 1038.6008,-653 1044.6008,-653 1044.6008,-653 1080.1334,-653 1080.1334,-653 1086.1334,-653 1092.1334,-659 1092.1334,-665 1092.1334,-665 1092.1334,-677 1092.1334,-677 1092.1334,-683 1086.1334,-689 1080.1334,-689"/>
<text text-anchor="middle" x="1062.3671" y="-675.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="1062.3671" y="-658.4" font-family="Verdana" font-size="14.00" fill="#000000">Error</text>
@ -104,11 +104,11 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.readCertificate&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="edge17" class="edge">
<g id="edge16" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.readCertificate&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_edge17"><a xlink:title="at certificate.go:160: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at certificate.go:170: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at certificate.go:188: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M891.9358,-615.4853C932.1804,-628.5942 986.3626,-646.243 1022.7345,-658.0905"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1021.9023,-661.5003 1032.4946,-661.2696 1024.0703,-654.8445 1021.9023,-661.5003"/>
<g id="a_edge16"><a xlink:title="at certificate.go:160: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at certificate.go:170: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at certificate.go:188: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M891.9358,-614.7248C932.1804,-628.0133 986.3626,-645.9039 1022.7345,-657.9136"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1021.9014,-661.3243 1032.4946,-661.1363 1024.0963,-654.6773 1021.9014,-661.3243"/>
</a>
</g>
</g>
@ -123,10 +123,10 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.readCertificate&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge18" class="edge">
<g id="edge2" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.readCertificate&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge18"><a xlink:title="at certificate.go:194: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M882.7605,-579.8076C896.3933,-572.6506 910.6188,-563.3816 921.3902,-552 972.6283,-497.8594 954.9975,-464.2831 994.3902,-401 1007.8831,-379.3241 1025.7385,-356.651 1039.7636,-339.887"/>
<g id="a_edge2"><a xlink:title="at certificate.go:194: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M883.6249,-578.925C896.9934,-571.9937 910.8476,-563.037 921.3902,-552 972.8783,-498.0971 954.9975,-464.2831 994.3902,-401 1007.8831,-379.3241 1025.7385,-356.651 1039.7636,-339.887"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1042.5136,-342.0555 1046.305,-332.1623 1037.1716,-337.5318 1042.5136,-342.0555"/>
</a>
</g>
@ -142,111 +142,129 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.readCertificate&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int -->
<g id="edge14" class="edge">
<g id="edge20" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.readCertificate&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int</title>
<g id="a_edge14"><a xlink:title="at certificate.go:159: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:169: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:178: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:182: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:192: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:193: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]">
<path fill="none" stroke="#8b4513" d="M890.2345,-579.9092C931.6024,-565.5115 988.4795,-545.7159 1025.3326,-532.8895"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1026.8727,-536.0595 1035.1666,-529.4669 1024.5718,-529.4485 1026.8727,-536.0595"/>
<g id="a_edge20"><a xlink:title="at certificate.go:159: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:169: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:178: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:182: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:192: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:193: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]">
<path fill="none" stroke="#8b4513" d="M890.7997,-578.9469C932.19,-564.7261 988.8409,-545.2621 1025.521,-532.6595"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1026.9878,-535.8565 1035.3079,-529.297 1024.7132,-529.2363 1026.9878,-535.8565"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateDeux -->
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate -->
<g id="node3" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateDeux</title>
<g id="a_node3"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateDeux | defined in certificate.go:223&#10;at certificate.go:233: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt]&#10;at certificate.go:243: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at certificate.go:225: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:230: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:246: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M896.0832,-153C896.0832,-153 780.4278,-153 780.4278,-153 774.4278,-153 768.4278,-147 768.4278,-141 768.4278,-141 768.4278,-129 768.4278,-129 768.4278,-123 774.4278,-117 780.4278,-117 780.4278,-117 896.0832,-117 896.0832,-117 902.0832,-117 908.0832,-123 908.0832,-129 908.0832,-129 908.0832,-141 908.0832,-141 908.0832,-147 902.0832,-153 896.0832,-153"/>
<text text-anchor="middle" x="838.2555" y="-130.8" font-family="Verdana" font-size="14.00" fill="#000000">NewCertificateDeux</text>
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate</title>
<g id="a_node3"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate | defined in certificate.go:201&#10;at certificate.go:202: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.readCertificate]&#10;at certificate.go:210: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at certificate.go:207: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).ExcessBytes]&#10;at certificate.go:204: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]&#10;at certificate.go:208: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M167.867,-845C167.867,-845 80.178,-845 80.178,-845 74.178,-845 68.178,-839 68.178,-833 68.178,-833 68.178,-821 68.178,-821 68.178,-815 74.178,-809 80.178,-809 80.178,-809 167.867,-809 167.867,-809 173.867,-809 179.867,-815 179.867,-821 179.867,-821 179.867,-833 179.867,-833 179.867,-839 173.867,-845 167.867,-845"/>
<text text-anchor="middle" x="124.0225" y="-822.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadCertificate</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateDeux&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge24" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateDeux&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge24"><a xlink:title="at certificate.go:225: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:230: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M908.244,-127.505C945.9757,-123.4643 991.1517,-118.6264 1022.8055,-115.2366"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1023.4211,-118.6908 1032.9915,-114.1458 1022.6757,-111.7306 1023.4211,-118.6908"/>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.readCertificate -->
<g id="edge8" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.readCertificate</title>
<g id="a_edge8"><a xlink:title="at certificate.go:202: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.readCertificate]">
<path fill="none" stroke="#000000" d="M180.1672,-827C229.1368,-827 302.0893,-827 365.6397,-827 365.6397,-827 365.6397,-827 527.1776,-827 662.8932,-827 778.1694,-683.7089 820.7207,-623.3279"/>
<polygon fill="#000000" stroke="#000000" points="823.6406,-625.2592 826.4648,-615.0477 817.889,-621.2692 823.6406,-625.2592"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt -->
<g id="node4" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt</title>
<g id="a_node4"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt | defined in integer.go:68">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M1118.3209,-67C1118.3209,-67 1006.4133,-67 1006.4133,-67 1000.4133,-67 994.4133,-61 994.4133,-55 994.4133,-55 994.4133,-43 994.4133,-43 994.4133,-37 1000.4133,-31 1006.4133,-31 1006.4133,-31 1118.3209,-31 1118.3209,-31 1124.3209,-31 1130.3209,-37 1130.3209,-43 1130.3209,-43 1130.3209,-55 1130.3209,-55 1130.3209,-61 1124.3209,-67 1118.3209,-67"/>
<text text-anchor="middle" x="1062.3671" y="-53.2" font-family="Verdana" font-size="14.00" fill="#000000">data</text>
<text text-anchor="middle" x="1062.3671" y="-36.4" font-family="Verdana" font-size="14.00" fill="#000000">NewIntegerFromInt</text>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).ExcessBytes -->
<g id="node11" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).ExcessBytes</title>
<g id="a_node11"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).ExcessBytes | defined in certificate.go:87&#10;at certificate.go:90: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at certificate.go:92: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at certificate.go:95: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at certificate.go:88: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:89: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M400.8974,-477C400.8974,-477 330.382,-477 330.382,-477 324.382,-477 318.382,-471 318.382,-465 318.382,-465 318.382,-453 318.382,-453 318.382,-447 324.382,-441 330.382,-441 330.382,-441 400.8974,-441 400.8974,-441 406.8974,-441 412.8974,-447 412.8974,-453 412.8974,-453 412.8974,-465 412.8974,-465 412.8974,-471 406.8974,-477 400.8974,-477"/>
<text text-anchor="middle" x="365.6397" y="-454.8" font-family="Verdana" font-size="14.00" fill="#000000">ExcessBytes</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateDeux&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt -->
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).ExcessBytes -->
<g id="edge18" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).ExcessBytes</title>
<g id="a_edge18"><a xlink:title="at certificate.go:207: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).ExcessBytes]">
<path fill="none" stroke="#000000" d="M129.437,-808.9044C146.6115,-754.2052 204.7309,-588.3227 305.045,-490 307.6901,-487.4074 310.5958,-484.985 313.6587,-482.7299"/>
<polygon fill="#000000" stroke="#000000" points="315.668,-485.597 322.0625,-477.1494 311.7957,-479.7656 315.668,-485.597"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge22" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge22"><a xlink:title="at certificate.go:208: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M179.9695,-836.824C228.8138,-844.544 301.6938,-854 365.6397,-854 365.6397,-854 365.6397,-854 838.2555,-854 918.5747,-854 924.2112,-802.065 994.3902,-763 999.5451,-760.1306 1005.014,-757.3022 1010.5228,-754.5908"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1012.2784,-757.6307 1019.7827,-750.1517 1009.2523,-751.3185 1012.2784,-757.6307"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/logger.Logger).Warn -->
<g id="node18" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).Warn</title>
<g id="a_node18"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).Warn | defined in log.go:30">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M1080.1334,-811C1080.1334,-811 1044.6008,-811 1044.6008,-811 1038.6008,-811 1032.6008,-805 1032.6008,-799 1032.6008,-799 1032.6008,-787 1032.6008,-787 1032.6008,-781 1038.6008,-775 1044.6008,-775 1044.6008,-775 1080.1334,-775 1080.1334,-775 1086.1334,-775 1092.1334,-781 1092.1334,-787 1092.1334,-787 1092.1334,-799 1092.1334,-799 1092.1334,-805 1086.1334,-811 1080.1334,-811"/>
<text text-anchor="middle" x="1062.3671" y="-797.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="1062.3671" y="-780.4" font-family="Verdana" font-size="14.00" fill="#000000">Warn</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warn -->
<g id="edge21" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warn</title>
<g id="a_edge21"><a xlink:title="at certificate.go:204: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]">
<path fill="none" stroke="#8b4513" d="M174.6643,-845.1314C223.0522,-860.819 298.3724,-881 365.6397,-881 365.6397,-881 365.6397,-881 838.2555,-881 892.3836,-881 907.9658,-880.678 958.3902,-861 985.466,-850.4337 1012.8462,-832.1507 1032.7088,-817.2021"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1034.9416,-819.9004 1040.7382,-811.0319 1030.6763,-814.3499 1034.9416,-819.9004"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge9" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateDeux&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt</title>
<g id="a_edge9"><a xlink:title="at certificate.go:233: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt]">
<path fill="none" stroke="#8b4513" d="M885.2366,-116.9716C920.3482,-103.498 968.5045,-85.0186 1005.7433,-70.7287"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1007.3656,-73.8551 1015.4478,-67.0047 1004.8577,-67.3197 1007.3656,-73.8551"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateDeux&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge15" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateDeux&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge15"><a xlink:title="at certificate.go:243: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M851.522,-153.0586C870.1671,-179.3685 903.8061,-230.4117 921.3902,-279 953.8513,-368.6964 935.6768,-626.8209 994.3902,-702 998.6579,-707.4646 1004.1302,-711.9569 1010.1131,-715.6445"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1008.6953,-718.8555 1019.1632,-720.4908 1011.9999,-712.6846 1008.6953,-718.8555"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateDeux&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge25" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateDeux&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge25"><a xlink:title="at certificate.go:246: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M908.395,-144.374C926.6456,-149.8377 944.937,-158.4481 958.3902,-172 997.6189,-211.5165 955.4437,-252.2053 994.3902,-292 1001.7432,-299.5132 1011.6778,-304.4629 1021.6788,-307.7231"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1021.0388,-311.1769 1031.6088,-310.4525 1022.8941,-304.4273 1021.0388,-311.1769"/>
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge9"><a xlink:title="at certificate.go:210: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M126.618,-808.9925C142.1927,-704.3357 227.2637,-179 365.6397,-179 365.6397,-179 365.6397,-179 838.2555,-179 876.2584,-179 889.4097,-178.4702 921.3902,-199 965.6091,-227.3863 951.2954,-261.9346 994.3902,-292 1002.5446,-297.689 1012.2569,-301.9722 1021.752,-305.1723"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1020.9084,-308.5739 1031.4939,-308.1286 1022.9412,-301.8755 1020.9084,-308.5739"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.init -->
<g id="node5" class="node">
<g id="node4" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.init</title>
<g id="a_node5"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.init | defined in .:0&#10;at certificate.go:18: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M139.0225,-882C139.0225,-882 109.0225,-882 109.0225,-882 103.0225,-882 97.0225,-876 97.0225,-870 97.0225,-870 97.0225,-858 97.0225,-858 97.0225,-852 103.0225,-846 109.0225,-846 109.0225,-846 139.0225,-846 139.0225,-846 145.0225,-846 151.0225,-852 151.0225,-858 151.0225,-858 151.0225,-870 151.0225,-870 151.0225,-876 145.0225,-882 139.0225,-882"/>
<text text-anchor="middle" x="124.0225" y="-859.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
<g id="a_node4"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.init | defined in .:0&#10;at certificate.go:18: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M139.0225,-59C139.0225,-59 109.0225,-59 109.0225,-59 103.0225,-59 97.0225,-53 97.0225,-47 97.0225,-47 97.0225,-35 97.0225,-35 97.0225,-29 103.0225,-23 109.0225,-23 109.0225,-23 139.0225,-23 139.0225,-23 145.0225,-23 151.0225,-29 151.0225,-35 151.0225,-35 151.0225,-47 151.0225,-47 151.0225,-53 145.0225,-59 139.0225,-59"/>
<text text-anchor="middle" x="124.0225" y="-36.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="node6" class="node">
<g id="node5" class="node">
<title>github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_node6"><a xlink:title="github.com/go&#45;i2p/logger.GetGoI2PLogger | defined in log.go:120">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M414.3292,-882C414.3292,-882 316.9502,-882 316.9502,-882 310.9502,-882 304.9502,-876 304.9502,-870 304.9502,-870 304.9502,-858 304.9502,-858 304.9502,-852 310.9502,-846 316.9502,-846 316.9502,-846 414.3292,-846 414.3292,-846 420.3292,-846 426.3292,-852 426.3292,-858 426.3292,-858 426.3292,-870 426.3292,-870 426.3292,-876 420.3292,-882 414.3292,-882"/>
<text text-anchor="middle" x="365.6397" y="-868.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="365.6397" y="-851.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
<g id="a_node5"><a xlink:title="github.com/go&#45;i2p/logger.GetGoI2PLogger | defined in log.go:120">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M414.3292,-59C414.3292,-59 316.9502,-59 316.9502,-59 310.9502,-59 304.9502,-53 304.9502,-47 304.9502,-47 304.9502,-35 304.9502,-35 304.9502,-29 310.9502,-23 316.9502,-23 316.9502,-23 414.3292,-23 414.3292,-23 420.3292,-23 426.3292,-29 426.3292,-35 426.3292,-35 426.3292,-47 426.3292,-47 426.3292,-53 420.3292,-59 414.3292,-59"/>
<text text-anchor="middle" x="365.6397" y="-45.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="365.6397" y="-28.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="edge35" class="edge">
<g id="edge36" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_edge35"><a xlink:title="at certificate.go:18: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="none" stroke="#8b4513" d="M151.2694,-864C185.8355,-864 246.7324,-864 294.8092,-864"/>
<polygon fill="#8b4513" stroke="#8b4513" points="294.8596,-867.5001 304.8596,-864 294.8595,-860.5001 294.8596,-867.5001"/>
<g id="a_edge36"><a xlink:title="at certificate.go:18: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="none" stroke="#8b4513" d="M151.2694,-41C185.8355,-41 246.7324,-41 294.8092,-41"/>
<polygon fill="#8b4513" stroke="#8b4513" points="294.8596,-44.5001 304.8596,-41 294.8595,-37.5001 294.8596,-44.5001"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.GetSignatureTypeFromCertificate -->
<g id="node7" class="node">
<g id="node6" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.GetSignatureTypeFromCertificate</title>
<g id="a_node7"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.GetSignatureTypeFromCertificate | defined in certificate.go:281&#10;at certificate.go:283: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:286: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:282: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Type]&#10;at certificate.go:283: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Type]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M220.0675,-214C220.0675,-214 27.9775,-214 27.9775,-214 21.9775,-214 15.9775,-208 15.9775,-202 15.9775,-202 15.9775,-190 15.9775,-190 15.9775,-184 21.9775,-178 27.9775,-178 27.9775,-178 220.0675,-178 220.0675,-178 226.0675,-178 232.0675,-184 232.0675,-190 232.0675,-190 232.0675,-202 232.0675,-202 232.0675,-208 226.0675,-214 220.0675,-214"/>
<text text-anchor="middle" x="124.0225" y="-191.8" font-family="Verdana" font-size="14.00" fill="#000000">GetSignatureTypeFromCertificate</text>
<g id="a_node6"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.GetSignatureTypeFromCertificate | defined in certificate.go:281&#10;at certificate.go:282: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Type]&#10;at certificate.go:283: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Type]&#10;at certificate.go:283: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:286: calling [github.com/samber/oops.Errorf]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M220.0675,-223C220.0675,-223 27.9775,-223 27.9775,-223 21.9775,-223 15.9775,-217 15.9775,-211 15.9775,-211 15.9775,-199 15.9775,-199 15.9775,-193 21.9775,-187 27.9775,-187 27.9775,-187 220.0675,-187 220.0675,-187 226.0675,-187 232.0675,-193 232.0675,-199 232.0675,-199 232.0675,-211 232.0675,-211 232.0675,-217 226.0675,-223 220.0675,-223"/>
<text text-anchor="middle" x="124.0225" y="-200.8" font-family="Verdana" font-size="14.00" fill="#000000">GetSignatureTypeFromCertificate</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.GetSignatureTypeFromCertificate&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge12" class="edge">
<g id="edge4" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.GetSignatureTypeFromCertificate&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge12"><a xlink:title="at certificate.go:283: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:286: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M147.5763,-177.9499C189.1752,-147.9288 279.4251,-91 365.6397,-91 365.6397,-91 365.6397,-91 718.6208,-91 829.0428,-91 959.081,-101.4127 1022.9377,-107.2115"/>
<g id="a_edge4"><a xlink:title="at certificate.go:283: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:286: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M145.3922,-186.9364C185.6792,-154.7915 276.818,-91 365.6397,-91 365.6397,-91 365.6397,-91 718.6208,-91 829.0428,-91 959.081,-101.4127 1022.9377,-107.2115"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1022.6938,-110.7038 1032.9723,-108.1345 1023.335,-103.7332 1022.6938,-110.7038"/>
</a>
</g>
@ -261,84 +279,66 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.GetSignatureTypeFromCertificate&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Type -->
<g id="edge26" class="edge">
<g id="edge3" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.GetSignatureTypeFromCertificate&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Type</title>
<g id="a_edge26"><a xlink:title="at certificate.go:282: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Type]&#10;at certificate.go:283: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Type]">
<path fill="none" stroke="#000000" d="M139.7453,-214.1996C169.4554,-247.7957 236.9885,-320.4563 305.045,-368 312.5261,-373.2263 321.0517,-378.045 329.2974,-382.2216"/>
<polygon fill="#000000" stroke="#000000" points="327.8933,-385.4306 338.4175,-386.652 330.952,-379.1342 327.8933,-385.4306"/>
<g id="a_edge3"><a xlink:title="at certificate.go:282: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Type]&#10;at certificate.go:283: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Type]">
<path fill="none" stroke="#000000" d="M140.8989,-223.1706C171.4062,-255.2997 238.7388,-322.9884 305.045,-368 312.5955,-373.1256 321.1482,-377.9048 329.3982,-382.0752"/>
<polygon fill="#000000" stroke="#000000" points="327.9911,-385.2828 338.5145,-386.5112 331.054,-378.9885 327.9911,-385.2828"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate -->
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateDeux -->
<g id="node7" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateDeux</title>
<g id="a_node7"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateDeux | defined in certificate.go:223&#10;at certificate.go:243: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at certificate.go:225: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:230: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:246: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at certificate.go:233: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M896.0832,-153C896.0832,-153 780.4278,-153 780.4278,-153 774.4278,-153 768.4278,-147 768.4278,-141 768.4278,-141 768.4278,-129 768.4278,-129 768.4278,-123 774.4278,-117 780.4278,-117 780.4278,-117 896.0832,-117 896.0832,-117 902.0832,-117 908.0832,-123 908.0832,-129 908.0832,-129 908.0832,-141 908.0832,-141 908.0832,-147 902.0832,-153 896.0832,-153"/>
<text text-anchor="middle" x="838.2555" y="-130.8" font-family="Verdana" font-size="14.00" fill="#000000">NewCertificateDeux</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateDeux&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge23" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateDeux&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge23"><a xlink:title="at certificate.go:225: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:230: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M908.244,-127.505C945.9757,-123.4643 991.1517,-118.6264 1022.8055,-115.2366"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1023.4211,-118.6908 1032.9915,-114.1458 1022.6757,-111.7306 1023.4211,-118.6908"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt -->
<g id="node8" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate</title>
<g id="a_node8"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate | defined in certificate.go:201&#10;at certificate.go:204: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]&#10;at certificate.go:208: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at certificate.go:202: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.readCertificate]&#10;at certificate.go:207: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).ExcessBytes]&#10;at certificate.go:210: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M167.867,-784C167.867,-784 80.178,-784 80.178,-784 74.178,-784 68.178,-778 68.178,-772 68.178,-772 68.178,-760 68.178,-760 68.178,-754 74.178,-748 80.178,-748 80.178,-748 167.867,-748 167.867,-748 173.867,-748 179.867,-754 179.867,-760 179.867,-760 179.867,-772 179.867,-772 179.867,-778 173.867,-784 167.867,-784"/>
<text text-anchor="middle" x="124.0225" y="-761.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadCertificate</text>
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt</title>
<g id="a_node8"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt | defined in integer.go:68">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M1118.3209,-53C1118.3209,-53 1006.4133,-53 1006.4133,-53 1000.4133,-53 994.4133,-47 994.4133,-41 994.4133,-41 994.4133,-29 994.4133,-29 994.4133,-23 1000.4133,-17 1006.4133,-17 1006.4133,-17 1118.3209,-17 1118.3209,-17 1124.3209,-17 1130.3209,-23 1130.3209,-29 1130.3209,-29 1130.3209,-41 1130.3209,-41 1130.3209,-47 1124.3209,-53 1118.3209,-53"/>
<text text-anchor="middle" x="1062.3671" y="-39.2" font-family="Verdana" font-size="14.00" fill="#000000">data</text>
<text text-anchor="middle" x="1062.3671" y="-22.4" font-family="Verdana" font-size="14.00" fill="#000000">NewIntegerFromInt</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.readCertificate -->
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateDeux&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt -->
<g id="edge37" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.readCertificate</title>
<g id="a_edge37"><a xlink:title="at certificate.go:202: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.readCertificate]">
<path fill="none" stroke="#000000" d="M179.9867,-762.1574C241.71,-759.6358 343.2744,-760.6028 426.2344,-786 444.3146,-791.535 444.9336,-811.7552 463.2344,-807 603.1009,-770.6574 746.215,-669.4856 807.4337,-622.5262"/>
<polygon fill="#000000" stroke="#000000" points="809.7508,-625.1589 815.5196,-616.2723 805.4681,-619.6218 809.7508,-625.1589"/>
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateDeux&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt</title>
<g id="a_edge37"><a xlink:title="at certificate.go:233: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt]">
<path fill="none" stroke="#8b4513" d="M878.8404,-116.8908C916.3257,-100.1646 972.1246,-75.2668 1012.3495,-57.3182"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1014.0001,-60.4143 1021.7061,-53.1432 1011.1477,-54.0218 1014.0001,-60.4143"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).ExcessBytes -->
<g id="node10" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).ExcessBytes</title>
<g id="a_node10"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).ExcessBytes | defined in certificate.go:87&#10;at certificate.go:88: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:89: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:92: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at certificate.go:95: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at certificate.go:90: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M400.8974,-477C400.8974,-477 330.382,-477 330.382,-477 324.382,-477 318.382,-471 318.382,-465 318.382,-465 318.382,-453 318.382,-453 318.382,-447 324.382,-441 330.382,-441 330.382,-441 400.8974,-441 400.8974,-441 406.8974,-441 412.8974,-447 412.8974,-453 412.8974,-453 412.8974,-465 412.8974,-465 412.8974,-471 406.8974,-477 400.8974,-477"/>
<text text-anchor="middle" x="365.6397" y="-454.8" font-family="Verdana" font-size="14.00" fill="#000000">ExcessBytes</text>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateDeux&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge12" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateDeux&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge12"><a xlink:title="at certificate.go:243: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M851.522,-153.0586C870.1671,-179.3685 903.8061,-230.4117 921.3902,-279 953.8513,-368.6964 935.6768,-626.8209 994.3902,-702 998.6579,-707.4646 1004.1302,-711.9569 1010.1131,-715.6445"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1008.6953,-718.8555 1019.1632,-720.4908 1011.9999,-712.6846 1008.6953,-718.8555"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).ExcessBytes -->
<g id="edge38" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).ExcessBytes</title>
<g id="a_edge38"><a xlink:title="at certificate.go:207: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).ExcessBytes]">
<path fill="none" stroke="#000000" d="M131.833,-747.9002C153.2078,-700.1556 216.9928,-569.052 305.045,-490 307.9783,-487.3666 311.176,-484.893 314.5195,-482.5825"/>
<polygon fill="#000000" stroke="#000000" points="316.4841,-485.4812 323.063,-477.1765 312.7412,-479.5659 316.4841,-485.4812"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge22" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge22"><a xlink:title="at certificate.go:208: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M180.0968,-771.1542C261.0105,-778.7673 403.3587,-792.883 426.2344,-800 474.8172,-815.115 476.2979,-854 527.1776,-854 527.1776,-854 527.1776,-854 838.2555,-854 918.5747,-854 924.2112,-802.065 994.3902,-763 999.5451,-760.1306 1005.014,-757.3022 1010.5228,-754.5908"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1012.2784,-757.6307 1019.7827,-750.1517 1009.2523,-751.3185 1012.2784,-757.6307"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/logger.Logger).Warn -->
<g id="node19" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).Warn</title>
<g id="a_node19"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).Warn | defined in log.go:30">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M1080.1334,-811C1080.1334,-811 1044.6008,-811 1044.6008,-811 1038.6008,-811 1032.6008,-805 1032.6008,-799 1032.6008,-799 1032.6008,-787 1032.6008,-787 1032.6008,-781 1038.6008,-775 1044.6008,-775 1044.6008,-775 1080.1334,-775 1080.1334,-775 1086.1334,-775 1092.1334,-781 1092.1334,-787 1092.1334,-787 1092.1334,-799 1092.1334,-799 1092.1334,-805 1086.1334,-811 1080.1334,-811"/>
<text text-anchor="middle" x="1062.3671" y="-797.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="1062.3671" y="-780.4" font-family="Verdana" font-size="14.00" fill="#000000">Warn</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warn -->
<g id="edge13" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warn</title>
<g id="a_edge13"><a xlink:title="at certificate.go:204: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]">
<path fill="none" stroke="#8b4513" d="M180.0468,-779.5023C206.6765,-785.8494 238.9731,-793.4449 268.045,-800 338.1958,-815.8176 360.7973,-804.1785 426.2344,-834 444.4336,-842.2939 444.4132,-851.9223 462.2344,-861 489.1456,-874.708 496.9762,-881 527.1776,-881 527.1776,-881 527.1776,-881 838.2555,-881 892.3836,-881 907.9658,-880.678 958.3902,-861 985.466,-850.4337 1012.8462,-832.1507 1032.7088,-817.2021"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1034.9416,-819.9004 1040.7382,-811.0319 1030.6763,-814.3499 1034.9416,-819.9004"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge39" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge39"><a xlink:title="at certificate.go:210: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M127.3077,-747.7886C145.6838,-648.7093 239.4548,-179 365.6397,-179 365.6397,-179 365.6397,-179 838.2555,-179 876.2584,-179 889.4097,-178.4702 921.3902,-199 965.6091,-227.3863 951.2954,-261.9346 994.3902,-292 1002.5446,-297.689 1012.2569,-301.9722 1021.752,-305.1723"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1020.9084,-308.5739 1031.4939,-308.1286 1022.9412,-301.8755 1020.9084,-308.5739"/>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateDeux&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge34" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateDeux&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge34"><a xlink:title="at certificate.go:246: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M908.395,-144.374C926.6456,-149.8377 944.937,-158.4481 958.3902,-172 997.6189,-211.5165 955.4437,-252.2053 994.3902,-292 1001.7432,-299.5132 1011.6778,-304.4629 1021.6788,-307.7231"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1021.0388,-311.1769 1031.6088,-310.4525 1022.8941,-304.4273 1021.0388,-311.1769"/>
</a>
</g>
</g>
@ -352,9 +352,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateWithType&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge33" class="edge">
<g id="edge28" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateWithType&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge33"><a xlink:title="at certificate.go:258: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:263: calling [github.com/samber/oops.Errorf]">
<g id="a_edge28"><a xlink:title="at certificate.go:258: calling [github.com/samber/oops.Errorf]&#10;at certificate.go:263: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M894.519,-57.0757C934.8151,-70.0216 988.0345,-87.1193 1023.6417,-98.5588"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1022.6011,-101.9006 1033.1924,-101.6271 1024.7422,-95.236 1022.6011,-101.9006"/>
</a>
@ -364,42 +364,78 @@
<g id="edge40" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateWithType&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt</title>
<g id="a_edge40"><a xlink:title="at certificate.go:265: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt]">
<path fill="none" stroke="#8b4513" d="M921.6566,-36.0157C933.9797,-36.0377 946.5198,-36.3173 958.3902,-37 966.7352,-37.48 975.4384,-38.1749 984.1017,-38.992"/>
<polygon fill="#8b4513" stroke="#8b4513" points="983.9313,-42.4923 994.2293,-40.0019 984.6259,-35.5269 983.9313,-42.4923"/>
<path fill="none" stroke="#8b4513" d="M921.7064,-37.5105C942.1472,-37.1457 963.949,-36.7566 984.1349,-36.3963"/>
<polygon fill="#8b4513" stroke="#8b4513" points="984.2775,-39.8944 994.2134,-36.2164 984.1525,-32.8955 984.2775,-39.8944"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length -->
<g id="node10" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length</title>
<g id="a_node10"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length | defined in certificate.go:125&#10;at certificate.go:129: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at certificate.go:126: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:127: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M857.9142,-538C857.9142,-538 818.5968,-538 818.5968,-538 812.5968,-538 806.5968,-532 806.5968,-526 806.5968,-526 806.5968,-514 806.5968,-514 806.5968,-508 812.5968,-502 818.5968,-502 818.5968,-502 857.9142,-502 857.9142,-502 863.9142,-502 869.9142,-508 869.9142,-514 869.9142,-514 869.9142,-526 869.9142,-526 869.9142,-532 863.9142,-538 857.9142,-538"/>
<text text-anchor="middle" x="838.2555" y="-515.8" font-family="Verdana" font-size="14.00" fill="#000000">Length</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge38" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge38"><a xlink:title="at certificate.go:127: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M870.0778,-521.9339C886.97,-524.4397 907.1252,-529.9669 921.3902,-542 981.1357,-592.3975 938.7785,-647.0748 994.3902,-702 998.9677,-706.521 1004.3418,-710.4191 1010.0282,-713.7654"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1008.6741,-717.0082 1019.1517,-718.5799 1011.9411,-710.8173 1008.6741,-717.0082"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge24" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge24"><a xlink:title="at certificate.go:129: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M863.6821,-501.7945C880.5068,-489.4202 902.8082,-472.3815 921.3902,-456 964.9263,-417.6195 1011.6811,-368.8553 1038.9109,-339.6073"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1041.4949,-341.9681 1045.7268,-332.2552 1036.3615,-337.2091 1041.4949,-341.9681"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int -->
<g id="edge35" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int</title>
<g id="a_edge35"><a xlink:title="at certificate.go:126: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]">
<path fill="none" stroke="#8b4513" d="M870.3652,-520C911.289,-520 981.8968,-520 1025.1348,-520"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1025.2399,-523.5001 1035.2399,-520 1025.2398,-516.5001 1025.2399,-523.5001"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).ExcessBytes&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge23" class="edge">
<g id="edge6" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).ExcessBytes&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge23"><a xlink:title="at certificate.go:90: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<g id="a_edge6"><a xlink:title="at certificate.go:90: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M413.037,-477.0926C418.1184,-480.6981 422.7107,-484.966 426.2344,-490 463.4737,-543.2008 413.5692,-737.0025 462.2344,-780 503.5475,-816.5017 904.5976,-792.0624 958.3902,-780 975.6557,-776.1284 978.3402,-770.4489 994.3902,-763 1000.477,-760.1751 1006.8798,-757.2259 1013.2223,-754.3181"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1014.7903,-757.4497 1022.4278,-750.1066 1011.8781,-751.0842 1014.7903,-757.4497"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).ExcessBytes&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge5" class="edge">
<g id="edge19" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).ExcessBytes&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge5"><a xlink:title="at certificate.go:92: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at certificate.go:95: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<g id="a_edge19"><a xlink:title="at certificate.go:92: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at certificate.go:95: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M407.6685,-440.8914C414.1432,-437.349 420.556,-433.3622 426.2344,-429 480.1656,-387.5692 459.1696,-314 527.1776,-314 527.1776,-314 527.1776,-314 838.2555,-314 902.192,-314 976.3886,-314 1021.3294,-314"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1021.5535,-317.5001 1031.5535,-314 1021.5535,-310.5001 1021.5535,-317.5001"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).ExcessBytes&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int -->
<g id="edge4" class="edge">
<g id="edge30" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).ExcessBytes&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int</title>
<g id="a_edge4"><a xlink:title="at certificate.go:88: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:89: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]">
<g id="a_edge30"><a xlink:title="at certificate.go:88: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:89: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]">
<path fill="none" stroke="#8b4513" d="M413.0536,-442.2321C444.9043,-432.4424 488.049,-422 527.1776,-422 527.1776,-422 527.1776,-422 718.6208,-422 779.7179,-422 950.1975,-479.98 1025.6438,-506.7463"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1024.618,-510.0963 1035.2127,-510.1547 1026.9669,-503.5021 1024.618,-510.0963"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes -->
<g id="node11" class="node">
<g id="node12" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes</title>
<g id="a_node11"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes | defined in certificate.go:100&#10;at certificate.go:101: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Bytes]&#10;at certificate.go:102: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Bytes]&#10;at certificate.go:103: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Data]&#10;at certificate.go:104: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at certificate.go:106: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<g id="a_node12"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes | defined in certificate.go:100&#10;at certificate.go:104: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at certificate.go:101: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Bytes]&#10;at certificate.go:102: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Bytes]&#10;at certificate.go:106: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at certificate.go:103: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Data]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M543.0641,-538C543.0641,-538 511.2911,-538 511.2911,-538 505.2911,-538 499.2911,-532 499.2911,-526 499.2911,-526 499.2911,-514 499.2911,-514 499.2911,-508 505.2911,-502 511.2911,-502 511.2911,-502 543.0641,-502 543.0641,-502 549.0641,-502 555.0641,-508 555.0641,-514 555.0641,-514 555.0641,-526 555.0641,-526 555.0641,-532 549.0641,-538 543.0641,-538"/>
<text text-anchor="middle" x="527.1776" y="-515.8" font-family="Verdana" font-size="14.00" fill="#000000">Bytes</text>
</a>
@ -415,27 +451,27 @@
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Data -->
<g id="edge20" class="edge">
<g id="edge32" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Data</title>
<g id="a_edge20"><a xlink:title="at certificate.go:103: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Data]">
<g id="a_edge32"><a xlink:title="at certificate.go:103: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Data]">
<path fill="none" stroke="#000000" d="M555.2553,-520C573.6714,-520 597.9555,-520 617.9655,-520"/>
<polygon fill="#000000" stroke="#000000" points="617.9862,-523.5001 627.9861,-520 617.9861,-516.5001 617.9862,-523.5001"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge21" class="edge">
<g id="edge1" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge21"><a xlink:title="at certificate.go:104: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<g id="a_edge1"><a xlink:title="at certificate.go:104: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M529.9125,-538.0109C538.4723,-586.9966 569.4835,-719 655.1208,-719 655.1208,-719 655.1208,-719 838.2555,-719 896.6494,-719 963.4583,-723.453 1008.8298,-727.1466"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1008.7727,-730.6539 1019.0281,-727.9935 1009.3521,-723.6779 1008.7727,-730.6539"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge31" class="edge">
<g id="edge27" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge31"><a xlink:title="at certificate.go:106: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<g id="a_edge27"><a xlink:title="at certificate.go:106: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M535.3242,-501.8239C552.2462,-467.1555 594.7211,-395 655.1208,-395 655.1208,-395 655.1208,-395 718.6208,-395 830.9451,-395 958.5435,-353.5187 1022.0321,-329.926"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1023.5331,-333.1008 1031.659,-326.3022 1021.067,-326.5495 1023.5331,-333.1008"/>
</a>
@ -452,126 +488,72 @@
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Bytes -->
<g id="edge19" class="edge">
<g id="edge25" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Bytes</title>
<g id="a_edge19"><a xlink:title="at certificate.go:101: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Bytes]&#10;at certificate.go:102: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Bytes]">
<g id="a_edge25"><a xlink:title="at certificate.go:101: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Bytes]&#10;at certificate.go:102: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Bytes]">
<path fill="none" stroke="#8b4513" d="M555.1926,-504.3634C580.5012,-491.7165 619.1824,-476 655.1208,-476 655.1208,-476 655.1208,-476 838.2555,-476 903.8206,-476 979.867,-468.6762 1024.3892,-463.6427"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1024.9341,-467.1032 1034.4676,-462.4812 1024.1326,-460.1492 1024.9341,-467.1032"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length -->
<g id="node12" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length</title>
<g id="a_node12"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length | defined in certificate.go:125&#10;at certificate.go:129: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at certificate.go:126: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]&#10;at certificate.go:127: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M857.9142,-538C857.9142,-538 818.5968,-538 818.5968,-538 812.5968,-538 806.5968,-532 806.5968,-526 806.5968,-526 806.5968,-514 806.5968,-514 806.5968,-508 812.5968,-502 818.5968,-502 818.5968,-502 857.9142,-502 857.9142,-502 863.9142,-502 869.9142,-508 869.9142,-514 869.9142,-514 869.9142,-526 869.9142,-526 869.9142,-532 863.9142,-538 857.9142,-538"/>
<text text-anchor="middle" x="838.2555" y="-515.8" font-family="Verdana" font-size="14.00" fill="#000000">Length</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge32" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge32"><a xlink:title="at certificate.go:127: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M870.0778,-521.9339C886.97,-524.4397 907.1252,-529.9669 921.3902,-542 981.1357,-592.3975 938.7785,-647.0748 994.3902,-702 998.9677,-706.521 1004.3418,-710.4191 1010.0282,-713.7654"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1008.6741,-717.0082 1019.1517,-718.5799 1011.9411,-710.8173 1008.6741,-717.0082"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge6" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge6"><a xlink:title="at certificate.go:129: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M863.6821,-501.7945C880.5068,-489.4202 902.8082,-472.3815 921.3902,-456 964.9263,-417.6195 1011.6811,-368.8553 1038.9109,-339.6073"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1041.4949,-341.9681 1045.7268,-332.2552 1036.3615,-337.2091 1041.4949,-341.9681"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int -->
<g id="edge28" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int</title>
<g id="a_edge28"><a xlink:title="at certificate.go:126: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]">
<path fill="none" stroke="#8b4513" d="M870.3652,-520C911.289,-520 981.8968,-520 1025.1348,-520"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1025.2399,-523.5001 1035.2399,-520 1025.2398,-516.5001 1025.2399,-523.5001"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Data&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length -->
<g id="edge29" class="edge">
<g id="edge26" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Data&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length</title>
<g id="a_edge29"><a xlink:title="at certificate.go:135: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length]">
<g id="a_edge26"><a xlink:title="at certificate.go:135: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length]">
<path fill="none" stroke="#000000" d="M682.143,-520C712.169,-520 761.0347,-520 796.0998,-520"/>
<polygon fill="#000000" stroke="#000000" points="796.503,-523.5001 806.5029,-520 796.5029,-516.5001 796.503,-523.5001"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Data&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge30" class="edge">
<g id="edge31" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Data&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge30"><a xlink:title="at certificate.go:142: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M661.8325,-538.028C674.6919,-569.9191 705.9675,-636.0198 755.1208,-669 760.4148,-672.5521 922.4867,-704.6412 1009.0514,-721.6002"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1008.478,-725.0543 1018.9641,-723.5407 1009.8229,-718.1847 1008.478,-725.0543"/>
<g id="a_edge31"><a xlink:title="at certificate.go:142: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M662.5733,-538.0526C676.177,-568.6482 708.0373,-630.4325 755.1208,-662 765.7096,-669.0994 923.8065,-702.9794 1008.9624,-720.8715"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1008.4652,-724.3433 1018.9709,-722.9713 1009.9026,-717.4924 1008.4652,-724.3433"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Data&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warn -->
<g id="edge7" class="edge">
<g id="edge14" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Data&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warn</title>
<g id="a_edge7"><a xlink:title="at certificate.go:138: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]">
<path fill="none" stroke="#8b4513" d="M660.1303,-538.0082C671.0289,-573.6579 700.4159,-653.2049 755.1208,-693 838.3116,-753.5172 959.986,-778.6476 1022.3147,-788.0347"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1022.1194,-791.5428 1032.5173,-789.5096 1023.121,-784.6148 1022.1194,-791.5428"/>
<g id="a_edge14"><a xlink:title="at certificate.go:138: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]">
<path fill="none" stroke="#8b4513" d="M660.6886,-538.1788C672.3115,-572.9981 702.5344,-649.1699 755.1208,-689 837.4468,-751.3554 959.4954,-777.7431 1022.106,-787.6955"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1021.9424,-791.211 1032.3563,-789.2615 1022.9997,-784.2913 1021.9424,-791.211"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Data&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge8" class="edge">
<g id="edge15" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Data&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge8"><a xlink:title="at certificate.go:144: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<g id="a_edge15"><a xlink:title="at certificate.go:144: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M682.1656,-509.4896C730.9543,-490.2072 836.5157,-447.009 921.3902,-402 958.6511,-382.2405 999.3255,-356.3539 1027.366,-337.7802"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1029.6243,-340.4813 1036.0057,-332.0238 1025.743,-334.6558 1029.6243,-340.4813"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).RawBytes -->
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).length -->
<g id="node14" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).RawBytes</title>
<g id="a_node14"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).RawBytes | defined in certificate.go:76&#10;at certificate.go:77: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Bytes]&#10;at certificate.go:78: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Bytes]&#10;at certificate.go:80: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at certificate.go:82: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M394.1852,-355C394.1852,-355 337.0942,-355 337.0942,-355 331.0942,-355 325.0942,-349 325.0942,-343 325.0942,-343 325.0942,-331 325.0942,-331 325.0942,-325 331.0942,-319 337.0942,-319 337.0942,-319 394.1852,-319 394.1852,-319 400.1852,-319 406.1852,-325 406.1852,-331 406.1852,-331 406.1852,-343 406.1852,-343 406.1852,-349 400.1852,-355 394.1852,-355"/>
<text text-anchor="middle" x="365.6397" y="-332.8" font-family="Verdana" font-size="14.00" fill="#000000">RawBytes</text>
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).length</title>
<g id="a_node14"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).length | defined in certificate.go:110&#10;at certificate.go:111: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M383.1355,-538C383.1355,-538 348.1439,-538 348.1439,-538 342.1439,-538 336.1439,-532 336.1439,-526 336.1439,-526 336.1439,-514 336.1439,-514 336.1439,-508 342.1439,-502 348.1439,-502 348.1439,-502 383.1355,-502 383.1355,-502 389.1355,-502 395.1355,-508 395.1355,-514 395.1355,-514 395.1355,-526 395.1355,-526 395.1355,-532 389.1355,-538 383.1355,-538"/>
<text text-anchor="middle" x="365.6397" y="-515.8" font-family="Verdana" font-size="14.00" fill="#000000">length</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).RawBytes&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge10" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).RawBytes&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge10"><a xlink:title="at certificate.go:80: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M406.2658,-351.7653C413.7563,-356.0336 420.8884,-361.3814 426.2344,-368 535.4971,-503.2716 353.2904,-746 527.1776,-746 527.1776,-746 527.1776,-746 838.2555,-746 896.665,-746 963.4713,-741.2044 1008.8379,-737.2267"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1009.3865,-740.6917 1019.035,-736.3147 1008.7629,-733.7195 1009.3865,-740.6917"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).RawBytes&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge34" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).RawBytes&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge34"><a xlink:title="at certificate.go:82: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M406.2343,-326.7314C413.3846,-323.7232 420.3965,-319.8824 426.2344,-315 450.677,-294.5581 440.8621,-276.6333 462.2344,-253 486.1323,-226.5738 491.5482,-206 527.1776,-206 527.1776,-206 527.1776,-206 838.2555,-206 895.5894,-206 911.0429,-220.6671 958.3902,-253 977.8704,-266.3028 974.5202,-279.2867 994.3902,-292 1002.6878,-297.309 1012.3789,-301.4413 1021.8004,-304.616"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1020.8641,-307.9898 1031.4513,-307.5869 1022.9237,-301.2996 1020.8641,-307.9898"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).RawBytes&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Bytes -->
<g id="edge2" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).RawBytes&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Bytes</title>
<g id="a_edge2"><a xlink:title="at certificate.go:77: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Bytes]&#10;at certificate.go:78: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Bytes]">
<path fill="none" stroke="#8b4513" d="M406.3953,-323.1598C413.0929,-320.6131 419.9087,-317.8521 426.2344,-315 472.8101,-294.0003 476.0867,-260 527.1776,-260 527.1776,-260 527.1776,-260 838.2555,-260 940.5999,-260 1017.9747,-377.4734 1048.3334,-431.9054"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1045.4271,-433.8864 1053.2885,-440.9891 1051.5723,-430.5342 1045.4271,-433.8864"/>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).length&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes -->
<g id="edge7" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).length&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes</title>
<g id="a_edge7"><a xlink:title="at certificate.go:111: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes]">
<path fill="none" stroke="#000000" d="M395.2682,-520C421.6326,-520 460.3466,-520 489.0205,-520"/>
<polygon fill="#000000" stroke="#000000" points="489.0889,-523.5001 499.0889,-520 489.0888,-516.5001 489.0889,-523.5001"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Type&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge16" class="edge">
<g id="edge33" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Type&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge16"><a xlink:title="at certificate.go:118: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<g id="a_edge33"><a xlink:title="at certificate.go:118: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M392.8854,-405.4307C405.0472,-410.1699 418.3791,-417.6229 426.2344,-429 508.5551,-548.228 369.8577,-641.3821 462.2344,-753 481.4902,-776.2666 496.9762,-773 527.1776,-773 527.1776,-773 527.1776,-773 838.2555,-773 897.4598,-773 964.0466,-758.9838 1009.1435,-747.3416"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1010.2151,-750.6788 1018.9943,-744.7479 1008.4327,-743.9095 1010.2151,-750.6788"/>
</a>
@ -587,29 +569,47 @@
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Type&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int -->
<g id="edge3" class="edge">
<g id="edge10" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Type&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int</title>
<g id="a_edge3"><a xlink:title="at certificate.go:117: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]">
<g id="a_edge10"><a xlink:title="at certificate.go:117: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]">
<path fill="none" stroke="#8b4513" d="M392.7931,-389.8024C424.6635,-380.9199 479.2568,-368 527.1776,-368 527.1776,-368 527.1776,-368 838.2555,-368 926.3206,-368 921.2143,-441.0025 994.3902,-490 1003.9919,-496.4291 1015.1971,-502.0322 1025.7081,-506.6001"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1024.5221,-509.8973 1035.0999,-510.4981 1027.2055,-503.432 1024.5221,-509.8973"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).length -->
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).RawBytes -->
<g id="node16" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).length</title>
<g id="a_node16"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).length | defined in certificate.go:110&#10;at certificate.go:111: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M383.1355,-538C383.1355,-538 348.1439,-538 348.1439,-538 342.1439,-538 336.1439,-532 336.1439,-526 336.1439,-526 336.1439,-514 336.1439,-514 336.1439,-508 342.1439,-502 348.1439,-502 348.1439,-502 383.1355,-502 383.1355,-502 389.1355,-502 395.1355,-508 395.1355,-514 395.1355,-514 395.1355,-526 395.1355,-526 395.1355,-532 389.1355,-538 383.1355,-538"/>
<text text-anchor="middle" x="365.6397" y="-515.8" font-family="Verdana" font-size="14.00" fill="#000000">length</text>
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).RawBytes</title>
<g id="a_node16"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).RawBytes | defined in certificate.go:76&#10;at certificate.go:80: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at certificate.go:77: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Bytes]&#10;at certificate.go:78: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Bytes]&#10;at certificate.go:82: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M394.1852,-355C394.1852,-355 337.0942,-355 337.0942,-355 331.0942,-355 325.0942,-349 325.0942,-343 325.0942,-343 325.0942,-331 325.0942,-331 325.0942,-325 331.0942,-319 337.0942,-319 337.0942,-319 394.1852,-319 394.1852,-319 400.1852,-319 406.1852,-325 406.1852,-331 406.1852,-331 406.1852,-343 406.1852,-343 406.1852,-349 400.1852,-355 394.1852,-355"/>
<text text-anchor="middle" x="365.6397" y="-332.8" font-family="Verdana" font-size="14.00" fill="#000000">RawBytes</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).length&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes -->
<g id="edge36" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).length&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes</title>
<g id="a_edge36"><a xlink:title="at certificate.go:111: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes]">
<path fill="none" stroke="#000000" d="M395.2682,-520C421.6326,-520 460.3466,-520 489.0205,-520"/>
<polygon fill="#000000" stroke="#000000" points="489.0889,-523.5001 499.0889,-520 489.0888,-516.5001 489.0889,-523.5001"/>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).RawBytes&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge5" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).RawBytes&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge5"><a xlink:title="at certificate.go:80: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M406.2658,-351.7653C413.7563,-356.0336 420.8884,-361.3814 426.2344,-368 535.4971,-503.2716 353.2904,-746 527.1776,-746 527.1776,-746 527.1776,-746 838.2555,-746 896.665,-746 963.4713,-741.2044 1008.8379,-737.2267"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1009.3865,-740.6917 1019.035,-736.3147 1008.7629,-733.7195 1009.3865,-740.6917"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).RawBytes&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge29" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).RawBytes&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge29"><a xlink:title="at certificate.go:82: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M406.2343,-326.7314C413.3846,-323.7232 420.3965,-319.8824 426.2344,-315 450.677,-294.5581 440.8621,-276.6333 462.2344,-253 486.1323,-226.5738 491.5482,-206 527.1776,-206 527.1776,-206 527.1776,-206 838.2555,-206 895.5894,-206 911.0429,-220.6671 958.3902,-253 977.8704,-266.3028 974.5202,-279.2867 994.3902,-292 1002.6878,-297.309 1012.3789,-301.4413 1021.8004,-304.616"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1020.8641,-307.9898 1031.4513,-307.5869 1022.9237,-301.2996 1020.8641,-307.9898"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).RawBytes&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Bytes -->
<g id="edge13" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).RawBytes&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Bytes</title>
<g id="a_edge13"><a xlink:title="at certificate.go:77: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Bytes]&#10;at certificate.go:78: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Bytes]">
<path fill="none" stroke="#8b4513" d="M406.3953,-323.1598C413.0929,-320.6131 419.9087,-317.8521 426.2344,-315 472.8101,-294.0003 476.0867,-260 527.1776,-260 527.1776,-260 527.1776,-260 838.2555,-260 940.5999,-260 1017.9747,-377.4734 1048.3334,-431.9054"/>
<polygon fill="#8b4513" stroke="#8b4513" points="1045.4271,-433.8864 1053.2885,-440.9891 1051.5723,-430.5342 1045.4271,-433.8864"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 61 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/common/data"
![data.svg](data)
![data.svg](data.svg)
Package data implements common data structures used in higher level structures.

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 138 KiB

After

Width:  |  Height:  |  Size: 139 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/common/destination"
![destination.svg](destination)
![destination.svg](destination.svg)
Package destination implements the I2P Destination common data structure

View File

@ -54,57 +54,19 @@
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.init -->
<g id="node1" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.init</title>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.init | defined in .:0&#10;at destination.go:17: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M94.5407,-52C94.5407,-52 64.5407,-52 64.5407,-52 58.5407,-52 52.5407,-46 52.5407,-40 52.5407,-40 52.5407,-28 52.5407,-28 52.5407,-22 58.5407,-16 64.5407,-16 64.5407,-16 94.5407,-16 94.5407,-16 100.5407,-16 106.5407,-22 106.5407,-28 106.5407,-28 106.5407,-40 106.5407,-40 106.5407,-46 100.5407,-52 94.5407,-52"/>
<text text-anchor="middle" x="79.5407" y="-29.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="node2" class="node">
<title>github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_node2"><a xlink:title="github.com/go&#45;i2p/logger.GetGoI2PLogger | defined in log.go:120">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M324.7548,-52C324.7548,-52 227.3758,-52 227.3758,-52 221.3758,-52 215.3758,-46 215.3758,-40 215.3758,-40 215.3758,-28 215.3758,-28 215.3758,-22 221.3758,-16 227.3758,-16 227.3758,-16 324.7548,-16 324.7548,-16 330.7548,-16 336.7548,-22 336.7548,-28 336.7548,-28 336.7548,-40 336.7548,-40 336.7548,-46 330.7548,-52 324.7548,-52"/>
<text text-anchor="middle" x="276.0653" y="-38.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="276.0653" y="-21.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="edge12" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_edge12"><a xlink:title="at destination.go:17: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="none" stroke="#8b4513" d="M106.8666,-34C132.1954,-34 170.9888,-34 205.043,-34"/>
<polygon fill="#8b4513" stroke="#8b4513" points="205.4392,-37.5001 215.4392,-34 205.4392,-30.5001 205.4392,-37.5001"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/base32.EncodeToString -->
<g id="node3" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/base32.EncodeToString</title>
<g id="a_node3"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/base32.EncodeToString | defined in base32.go:16">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M321.8244,-563C321.8244,-563 230.3062,-563 230.3062,-563 224.3062,-563 218.3062,-557 218.3062,-551 218.3062,-551 218.3062,-539 218.3062,-539 218.3062,-533 224.3062,-527 230.3062,-527 230.3062,-527 321.8244,-527 321.8244,-527 327.8244,-527 333.8244,-533 333.8244,-539 333.8244,-539 333.8244,-551 333.8244,-551 333.8244,-557 327.8244,-563 321.8244,-563"/>
<text text-anchor="middle" x="276.0653" y="-549.2" font-family="Verdana" font-size="14.00" fill="#000000">base32</text>
<text text-anchor="middle" x="276.0653" y="-532.4" font-family="Verdana" font-size="14.00" fill="#000000">EncodeToString</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.ReadDestination -->
<g id="node4" class="node">
<g id="node1" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.ReadDestination</title>
<g id="a_node4"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.ReadDestination | defined in destination.go:72&#10;at destination.go:73: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at destination.go:82: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at destination.go:75: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at destination.go:84: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at destination.go:77: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert]">
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.ReadDestination | defined in destination.go:72&#10;at destination.go:77: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert]&#10;at destination.go:75: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at destination.go:84: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at destination.go:73: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at destination.go:82: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M126.3497,-191C126.3497,-191 32.7317,-191 32.7317,-191 26.7317,-191 20.7317,-185 20.7317,-179 20.7317,-179 20.7317,-167 20.7317,-167 20.7317,-161 26.7317,-155 32.7317,-155 32.7317,-155 126.3497,-155 126.3497,-155 132.3497,-155 138.3497,-161 138.3497,-167 138.3497,-167 138.3497,-179 138.3497,-179 138.3497,-185 132.3497,-191 126.3497,-191"/>
<text text-anchor="middle" x="79.5407" y="-168.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadDestination</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert -->
<g id="node5" class="node">
<g id="node2" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert</title>
<g id="a_node5"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert | defined in keys_and_cert.go:142">
<g id="a_node2"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert | defined in keys_and_cert.go:142">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M328.8062,-113C328.8062,-113 223.3244,-113 223.3244,-113 217.3244,-113 211.3244,-107 211.3244,-101 211.3244,-101 211.3244,-89 211.3244,-89 211.3244,-83 217.3244,-77 223.3244,-77 223.3244,-77 328.8062,-77 328.8062,-77 334.8062,-77 340.8062,-83 340.8062,-89 340.8062,-89 340.8062,-101 340.8062,-101 340.8062,-107 334.8062,-113 328.8062,-113"/>
<text text-anchor="middle" x="276.0653" y="-99.2" font-family="Verdana" font-size="14.00" fill="#000000">keys_and_cert</text>
<text text-anchor="middle" x="276.0653" y="-82.4" font-family="Verdana" font-size="14.00" fill="#000000">ReadKeysAndCert</text>
@ -112,9 +74,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.ReadDestination&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert -->
<g id="edge14" class="edge">
<g id="edge1" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.ReadDestination&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert</title>
<g id="a_edge14"><a xlink:title="at destination.go:77: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert]">
<g id="a_edge1"><a xlink:title="at destination.go:77: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert]">
<path fill="none" stroke="#8b4513" d="M119.8466,-154.9251C145.7433,-143.5438 180.215,-128.8228 211.195,-117 211.5179,-116.8768 211.8418,-116.7535 212.1667,-116.6302"/>
<polygon fill="#8b4513" stroke="#8b4513" points="213.6372,-119.8181 221.8003,-113.0642 211.2071,-113.2534 213.6372,-119.8181"/>
</a>
@ -131,9 +93,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.ReadDestination&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge4" class="edge">
<g id="edge13" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.ReadDestination&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge4"><a xlink:title="at destination.go:73: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at destination.go:82: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<g id="a_edge13"><a xlink:title="at destination.go:73: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at destination.go:82: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M95.6552,-191.3454C118.8737,-216.761 164.144,-262.6371 211.195,-290 215.0581,-292.2466 219.1849,-294.3077 223.4146,-296.1894"/>
<polygon fill="#8b4513" stroke="#8b4513" points="222.196,-299.4724 232.7765,-300.0243 224.8495,-292.9948 222.196,-299.4724"/>
</a>
@ -150,14 +112,52 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.ReadDestination&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge13" class="edge">
<g id="edge4" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.ReadDestination&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge13"><a xlink:title="at destination.go:75: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at destination.go:84: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<g id="a_edge4"><a xlink:title="at destination.go:75: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at destination.go:84: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M138.2384,-173C169.429,-173 207.0043,-173 235.0381,-173"/>
<polygon fill="#8b4513" stroke="#8b4513" points="235.282,-176.5001 245.282,-173 235.2819,-169.5001 235.282,-176.5001"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.init -->
<g id="node3" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.init</title>
<g id="a_node3"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.init | defined in .:0&#10;at destination.go:17: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M94.5407,-52C94.5407,-52 64.5407,-52 64.5407,-52 58.5407,-52 52.5407,-46 52.5407,-40 52.5407,-40 52.5407,-28 52.5407,-28 52.5407,-22 58.5407,-16 64.5407,-16 64.5407,-16 94.5407,-16 94.5407,-16 100.5407,-16 106.5407,-22 106.5407,-28 106.5407,-28 106.5407,-40 106.5407,-40 106.5407,-46 100.5407,-52 94.5407,-52"/>
<text text-anchor="middle" x="79.5407" y="-29.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="node4" class="node">
<title>github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_node4"><a xlink:title="github.com/go&#45;i2p/logger.GetGoI2PLogger | defined in log.go:120">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M324.7548,-52C324.7548,-52 227.3758,-52 227.3758,-52 221.3758,-52 215.3758,-46 215.3758,-40 215.3758,-40 215.3758,-28 215.3758,-28 215.3758,-22 221.3758,-16 227.3758,-16 227.3758,-16 324.7548,-16 324.7548,-16 330.7548,-16 336.7548,-22 336.7548,-28 336.7548,-28 336.7548,-40 336.7548,-40 336.7548,-46 330.7548,-52 324.7548,-52"/>
<text text-anchor="middle" x="276.0653" y="-38.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="276.0653" y="-21.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="edge14" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_edge14"><a xlink:title="at destination.go:17: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="none" stroke="#8b4513" d="M106.8666,-34C132.1954,-34 170.9888,-34 205.043,-34"/>
<polygon fill="#8b4513" stroke="#8b4513" points="205.4392,-37.5001 215.4392,-34 205.4392,-30.5001 205.4392,-37.5001"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/base32.EncodeToString -->
<g id="node5" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/base32.EncodeToString</title>
<g id="a_node5"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/base32.EncodeToString | defined in base32.go:16">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M321.8244,-563C321.8244,-563 230.3062,-563 230.3062,-563 224.3062,-563 218.3062,-557 218.3062,-551 218.3062,-551 218.3062,-539 218.3062,-539 218.3062,-533 224.3062,-527 230.3062,-527 230.3062,-527 321.8244,-527 321.8244,-527 327.8244,-527 333.8244,-533 333.8244,-539 333.8244,-539 333.8244,-551 333.8244,-551 333.8244,-557 327.8244,-563 321.8244,-563"/>
<text text-anchor="middle" x="276.0653" y="-549.2" font-family="Verdana" font-size="14.00" fill="#000000">base32</text>
<text text-anchor="middle" x="276.0653" y="-532.4" font-family="Verdana" font-size="14.00" fill="#000000">EncodeToString</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/base64.EncodeToString -->
<g id="node6" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/base64.EncodeToString</title>
@ -191,16 +191,16 @@
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.Destination).Base32Address -->
<g id="node11" class="node">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.Destination).Base32Address</title>
<g id="a_node11"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.Destination).Base32Address | defined in destination.go:38&#10;at destination.go:41: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Certificate]&#10;at destination.go:42: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes]&#10;at destination.go:44: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/base32.EncodeToString]&#10;at destination.go:47: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at destination.go:39: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at destination.go:49: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<g id="a_node11"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.Destination).Base32Address | defined in destination.go:38&#10;at destination.go:42: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes]&#10;at destination.go:41: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Certificate]&#10;at destination.go:39: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at destination.go:49: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at destination.go:44: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/base32.EncodeToString]&#10;at destination.go:47: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M123.1221,-426C123.1221,-426 35.9593,-426 35.9593,-426 29.9593,-426 23.9593,-420 23.9593,-414 23.9593,-414 23.9593,-402 23.9593,-402 23.9593,-396 29.9593,-390 35.9593,-390 35.9593,-390 123.1221,-390 123.1221,-390 129.1221,-390 135.1221,-396 135.1221,-402 135.1221,-402 135.1221,-414 135.1221,-414 135.1221,-420 129.1221,-426 123.1221,-426"/>
<text text-anchor="middle" x="79.5407" y="-403.8" font-family="Verdana" font-size="14.00" fill="#000000">Base32Address</text>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.Destination).Base32Address&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/base32.EncodeToString -->
<g id="edge3" class="edge">
<g id="edge9" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.Destination).Base32Address&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/base32.EncodeToString</title>
<g id="a_edge3"><a xlink:title="at destination.go:44: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/base32.EncodeToString]">
<g id="a_edge9"><a xlink:title="at destination.go:44: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/base32.EncodeToString]">
<path fill="none" stroke="#8b4513" d="M98.3658,-426.2155C122.8623,-449.2395 167.6924,-489.1061 211.195,-516 214.7364,-518.1894 218.4716,-520.3055 222.2878,-522.3296"/>
<polygon fill="#8b4513" stroke="#8b4513" points="220.7827,-525.4905 231.2865,-526.8769 223.9399,-519.2429 220.7827,-525.4905"/>
</a>
@ -216,18 +216,18 @@
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.Destination).Base32Address&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Certificate -->
<g id="edge1" class="edge">
<g id="edge5" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.Destination).Base32Address&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Certificate</title>
<g id="a_edge1"><a xlink:title="at destination.go:41: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Certificate]">
<g id="a_edge5"><a xlink:title="at destination.go:41: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Certificate]">
<path fill="none" stroke="#8b4513" d="M126.1143,-426.0109C154.2801,-436.9032 190.3668,-450.8587 220.0806,-462.3496"/>
<polygon fill="#8b4513" stroke="#8b4513" points="218.8966,-465.6443 229.4859,-465.9868 221.4214,-459.1155 218.8966,-465.6443"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.Destination).Base32Address&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge6" class="edge">
<g id="edge10" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.Destination).Base32Address&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge6"><a xlink:title="at destination.go:47: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<g id="a_edge10"><a xlink:title="at destination.go:47: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M135.4607,-410.5532C149.2676,-408.9965 163.4512,-405.3584 175.195,-398 200.9047,-381.8908 188.214,-359.8083 211.195,-340 215.0451,-336.6814 219.3484,-333.7036 223.8574,-331.0431"/>
<polygon fill="#8b4513" stroke="#8b4513" points="225.5446,-334.1099 232.7168,-326.3118 222.247,-327.9353 225.5446,-334.1099"/>
</a>
@ -245,7 +245,7 @@
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.Destination).Base64 -->
<g id="node12" class="node">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.Destination).Base64</title>
<g id="a_node12"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.Destination).Base64 | defined in destination.go:55&#10;at destination.go:56: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at destination.go:64: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at destination.go:60: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/base64.EncodeToString]&#10;at destination.go:58: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Certificate]&#10;at destination.go:59: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes]&#10;at destination.go:62: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<g id="a_node12"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.Destination).Base64 | defined in destination.go:55&#10;at destination.go:59: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes]&#10;at destination.go:58: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Certificate]&#10;at destination.go:60: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/base64.EncodeToString]&#10;at destination.go:56: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at destination.go:64: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at destination.go:62: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M100.2514,-365C100.2514,-365 58.83,-365 58.83,-365 52.83,-365 46.83,-359 46.83,-353 46.83,-353 46.83,-341 46.83,-341 46.83,-335 52.83,-329 58.83,-329 58.83,-329 100.2514,-329 100.2514,-329 106.2514,-329 112.2514,-335 112.2514,-341 112.2514,-341 112.2514,-353 112.2514,-353 112.2514,-359 106.2514,-365 100.2514,-365"/>
<text text-anchor="middle" x="79.5407" y="-342.8" font-family="Verdana" font-size="14.00" fill="#000000">Base64</text>
</a>
@ -261,36 +261,36 @@
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.Destination).Base64&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes -->
<g id="edge10" class="edge">
<g id="edge3" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.Destination).Base64&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes</title>
<g id="a_edge10"><a xlink:title="at destination.go:59: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes]">
<g id="a_edge3"><a xlink:title="at destination.go:59: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes]">
<path fill="none" stroke="#8b4513" d="M112.2576,-348.1387C130.9214,-349.3528 154.6235,-351.8541 175.195,-357 193.2842,-361.5249 212.4093,-368.65 229.0864,-375.6996"/>
<polygon fill="#8b4513" stroke="#8b4513" points="228.0292,-379.056 238.5963,-379.8214 230.8129,-372.6333 228.0292,-379.056"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.Destination).Base64&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Certificate -->
<g id="edge9" class="edge">
<g id="edge6" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.Destination).Base64&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Certificate</title>
<g id="a_edge9"><a xlink:title="at destination.go:58: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Certificate]">
<g id="a_edge6"><a xlink:title="at destination.go:58: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Certificate]">
<path fill="none" stroke="#8b4513" d="M112.2798,-361.284C122.4063,-366.1451 133.4308,-371.9033 143.0814,-378 163.9636,-391.1922 214.3577,-432.4214 246.7655,-459.4025"/>
<polygon fill="#8b4513" stroke="#8b4513" points="244.6676,-462.2104 254.5883,-465.9293 249.1521,-456.8354 244.6676,-462.2104"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.Destination).Base64&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge11" class="edge">
<g id="edge12" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.Destination).Base64&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge11"><a xlink:title="at destination.go:62: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<g id="a_edge12"><a xlink:title="at destination.go:62: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M112.3907,-341.0766C130.5996,-337.7992 153.6485,-333.6603 174.195,-330 190.0047,-327.1835 207.1979,-324.1387 222.8796,-321.3685"/>
<polygon fill="#8b4513" stroke="#8b4513" points="223.6975,-324.7783 232.9366,-319.5929 222.4804,-317.8849 223.6975,-324.7783"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.Destination).Base64&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge5" class="edge">
<g id="edge11" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/destination.Destination).Base64&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge5"><a xlink:title="at destination.go:56: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at destination.go:64: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<g id="a_edge11"><a xlink:title="at destination.go:56: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at destination.go:64: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M112.3191,-341.1468C123.1386,-337.8792 134.5697,-332.8178 143.0814,-325 168.1559,-301.9697 158.3099,-285.1129 174.195,-255 188.8126,-227.2898 186.6888,-214.5186 211.195,-195 218.2916,-189.3477 226.9195,-185.1105 235.5357,-181.9469"/>
<polygon fill="#8b4513" stroke="#8b4513" points="236.7484,-185.2331 245.1766,-178.8131 234.5844,-178.5759 236.7484,-185.2331"/>
</a>

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/common/fuzz/certificate"
![exportable.svg](exportable)
![exportable.svg](exportable.svg)

View File

@ -25,7 +25,7 @@
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/certificate.Fuzz -->
<g id="node1" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/certificate.Fuzz</title>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/certificate.Fuzz | defined in fuzz.go:5&#10;at fuzz.go:9: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Type]&#10;at fuzz.go:6: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate]&#10;at fuzz.go:7: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Data]&#10;at fuzz.go:8: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length]">
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/certificate.Fuzz | defined in fuzz.go:5&#10;at fuzz.go:6: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate]&#10;at fuzz.go:7: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Data]&#10;at fuzz.go:8: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length]&#10;at fuzz.go:9: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Type]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M58,-160C58,-160 28,-160 28,-160 22,-160 16,-154 16,-148 16,-148 16,-136 16,-136 16,-130 22,-124 28,-124 28,-124 58,-124 58,-124 64,-124 70,-130 70,-136 70,-136 70,-148 70,-148 70,-154 64,-160 58,-160"/>
<text text-anchor="middle" x="43" y="-137.8" font-family="Verdana" font-size="14.00" fill="#000000">Fuzz</text>
</a>
@ -42,9 +42,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/certificate.Fuzz&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate -->
<g id="edge2" class="edge">
<g id="edge1" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/certificate.Fuzz&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate</title>
<g id="a_edge2"><a xlink:title="at fuzz.go:6: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate]">
<g id="a_edge1"><a xlink:title="at fuzz.go:6: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.ReadCertificate]">
<path fill="none" stroke="#8b4513" d="M60.5563,-123.8395C78.2431,-106.2965 107.1045,-79.6361 142.3601,-57.393"/>
<polygon fill="#8b4513" stroke="#8b4513" points="144.2536,-60.3376 150.9601,-52.1355 140.6025,-54.3652 144.2536,-60.3376"/>
</a>
@ -61,9 +61,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/certificate.Fuzz&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Data -->
<g id="edge3" class="edge">
<g id="edge2" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/certificate.Fuzz&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Data</title>
<g id="a_edge3"><a xlink:title="at fuzz.go:7: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Data]">
<g id="a_edge2"><a xlink:title="at fuzz.go:7: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Data]">
<path fill="none" stroke="#8b4513" d="M70.3338,-136.7744C92.2913,-132.5766 123.7111,-126.5699 150.1132,-121.5224"/>
<polygon fill="#8b4513" stroke="#8b4513" points="150.7913,-124.9562 159.9562,-119.6406 149.4768,-118.0807 150.7913,-124.9562"/>
</a>
@ -80,9 +80,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/certificate.Fuzz&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length -->
<g id="edge4" class="edge">
<g id="edge3" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/certificate.Fuzz&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length</title>
<g id="a_edge4"><a xlink:title="at fuzz.go:8: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length]">
<g id="a_edge3"><a xlink:title="at fuzz.go:8: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Length]">
<path fill="none" stroke="#8b4513" d="M70.3338,-147.3998C92.2913,-151.7375 123.7111,-157.9445 150.1132,-163.1602"/>
<polygon fill="#8b4513" stroke="#8b4513" points="149.4674,-166.6002 159.9562,-165.1047 150.8241,-159.7329 149.4674,-166.6002"/>
</a>
@ -99,9 +99,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/certificate.Fuzz&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Type -->
<g id="edge1" class="edge">
<g id="edge4" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/certificate.Fuzz&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Type</title>
<g id="a_edge1"><a xlink:title="at fuzz.go:9: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Type]">
<g id="a_edge4"><a xlink:title="at fuzz.go:9: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Type]">
<path fill="none" stroke="#8b4513" d="M70.1769,-159.2759C90.3621,-171.9616 118.6668,-189.4457 144,-204 148.084,-206.3463 152.3634,-208.7456 156.6592,-211.1147"/>
<polygon fill="#8b4513" stroke="#8b4513" points="154.9879,-214.1898 165.4424,-215.9086 158.3415,-208.0455 154.9879,-214.1898"/>
</a>

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/common/fuzz/destination"
![exportable.svg](exportable)
![exportable.svg](exportable.svg)

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/common/fuzz/keys_and_cert"
![exportable.svg](exportable)
![exportable.svg](exportable.svg)

View File

@ -25,7 +25,7 @@
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/keys_and_cert.Fuzz -->
<g id="node1" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/keys_and_cert.Fuzz</title>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/keys_and_cert.Fuzz | defined in fuzz.go:5&#10;at fuzz.go:8: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).PublicKey]&#10;at fuzz.go:9: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).SigningPublicKey]&#10;at fuzz.go:6: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert]&#10;at fuzz.go:7: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Certificate]">
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/keys_and_cert.Fuzz | defined in fuzz.go:5&#10;at fuzz.go:6: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert]&#10;at fuzz.go:7: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Certificate]&#10;at fuzz.go:8: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).PublicKey]&#10;at fuzz.go:9: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).SigningPublicKey]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M58,-160C58,-160 28,-160 28,-160 22,-160 16,-154 16,-148 16,-148 16,-136 16,-136 16,-130 22,-124 28,-124 28,-124 58,-124 58,-124 64,-124 70,-130 70,-136 70,-136 70,-148 70,-148 70,-154 64,-160 58,-160"/>
<text text-anchor="middle" x="43" y="-137.8" font-family="Verdana" font-size="14.00" fill="#000000">Fuzz</text>
</a>
@ -42,9 +42,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/keys_and_cert.Fuzz&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert -->
<g id="edge3" class="edge">
<g id="edge1" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/keys_and_cert.Fuzz&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert</title>
<g id="a_edge3"><a xlink:title="at fuzz.go:6: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert]">
<g id="a_edge1"><a xlink:title="at fuzz.go:6: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert]">
<path fill="none" stroke="#8b4513" d="M58.0901,-123.9966C73.9008,-106.1275 100.4054,-78.8225 134.9201,-57.4503"/>
<polygon fill="#8b4513" stroke="#8b4513" points="137.0442,-60.2603 143.866,-52.1539 133.4779,-54.2368 137.0442,-60.2603"/>
</a>
@ -61,9 +61,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/keys_and_cert.Fuzz&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Certificate -->
<g id="edge4" class="edge">
<g id="edge2" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/keys_and_cert.Fuzz&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Certificate</title>
<g id="a_edge4"><a xlink:title="at fuzz.go:7: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Certificate]">
<g id="a_edge2"><a xlink:title="at fuzz.go:7: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Certificate]">
<path fill="none" stroke="#8b4513" d="M70.225,-137.0461C90.5721,-133.3437 119.2244,-128.1301 145.123,-123.4176"/>
<polygon fill="#8b4513" stroke="#8b4513" points="146.0533,-126.8058 155.2652,-121.5721 144.8001,-119.9189 146.0533,-126.8058"/>
</a>
@ -80,9 +80,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/keys_and_cert.Fuzz&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).PublicKey -->
<g id="edge1" class="edge">
<g id="edge3" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/keys_and_cert.Fuzz&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).PublicKey</title>
<g id="a_edge1"><a xlink:title="at fuzz.go:8: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).PublicKey]">
<g id="a_edge3"><a xlink:title="at fuzz.go:8: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).PublicKey]">
<path fill="none" stroke="#8b4513" d="M70.225,-147.119C90.5721,-150.9448 119.2244,-156.3322 145.123,-161.2018"/>
<polygon fill="#8b4513" stroke="#8b4513" points="144.7906,-164.7006 155.2652,-163.1088 146.0842,-157.8212 144.7906,-164.7006"/>
</a>
@ -99,9 +99,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/keys_and_cert.Fuzz&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).SigningPublicKey -->
<g id="edge2" class="edge">
<g id="edge4" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/keys_and_cert.Fuzz&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).SigningPublicKey</title>
<g id="a_edge2"><a xlink:title="at fuzz.go:9: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).SigningPublicKey]">
<g id="a_edge4"><a xlink:title="at fuzz.go:9: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).SigningPublicKey]">
<path fill="none" stroke="#8b4513" d="M67.6184,-160.1635C86.0385,-173.2904 112.1509,-190.9378 136.5386,-204 141.4238,-206.6165 146.5867,-209.1688 151.811,-211.6095"/>
<polygon fill="#8b4513" stroke="#8b4513" points="150.6805,-214.9395 161.2342,-215.8722 153.5656,-208.5617 150.6805,-214.9395"/>
</a>

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/common/fuzz/router_address"
![exportable.svg](exportable)
![exportable.svg](exportable.svg)

View File

@ -25,7 +25,7 @@
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/router_address.Fuzz -->
<g id="node1" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/router_address.Fuzz</title>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/router_address.Fuzz | defined in fuzz.go:5&#10;at fuzz.go:6: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.ReadRouterAddress]&#10;at fuzz.go:7: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).Cost]&#10;at fuzz.go:8: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).Expiration]&#10;at fuzz.go:9: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).Options]&#10;at fuzz.go:10: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).TransportStyle]">
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/router_address.Fuzz | defined in fuzz.go:5&#10;at fuzz.go:10: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).TransportStyle]&#10;at fuzz.go:6: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.ReadRouterAddress]&#10;at fuzz.go:7: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).Cost]&#10;at fuzz.go:8: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).Expiration]&#10;at fuzz.go:9: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).Options]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M58,-191C58,-191 28,-191 28,-191 22,-191 16,-185 16,-179 16,-179 16,-167 16,-167 16,-161 22,-155 28,-155 28,-155 58,-155 58,-155 64,-155 70,-161 70,-167 70,-167 70,-179 70,-179 70,-185 64,-191 58,-191"/>
<text text-anchor="middle" x="43" y="-168.8" font-family="Verdana" font-size="14.00" fill="#000000">Fuzz</text>
</a>
@ -42,9 +42,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/router_address.Fuzz&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.ReadRouterAddress -->
<g id="edge1" class="edge">
<g id="edge2" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/router_address.Fuzz&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.ReadRouterAddress</title>
<g id="a_edge1"><a xlink:title="at fuzz.go:6: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.ReadRouterAddress]">
<g id="a_edge2"><a xlink:title="at fuzz.go:6: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.ReadRouterAddress]">
<path fill="none" stroke="#8b4513" d="M54.2,-154.8153C69.8891,-130.7191 100.687,-88.1071 143.143,-57.8152"/>
<polygon fill="#8b4513" stroke="#8b4513" points="145.2054,-60.6453 151.4961,-52.1202 141.2621,-54.8616 145.2054,-60.6453"/>
</a>
@ -61,9 +61,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/router_address.Fuzz&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).Cost -->
<g id="edge2" class="edge">
<g id="edge3" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/router_address.Fuzz&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).Cost</title>
<g id="a_edge2"><a xlink:title="at fuzz.go:7: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).Cost]">
<g id="a_edge3"><a xlink:title="at fuzz.go:7: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).Cost]">
<path fill="none" stroke="#8b4513" d="M70.3728,-163.1993C92.7676,-155.181 125.2557,-143.5488 153.6076,-133.3975"/>
<polygon fill="#8b4513" stroke="#8b4513" points="154.8086,-136.6851 163.0435,-130.019 152.4489,-130.0948 154.8086,-136.6851"/>
</a>
@ -80,9 +80,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/router_address.Fuzz&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).Expiration -->
<g id="edge3" class="edge">
<g id="edge4" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/router_address.Fuzz&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).Expiration</title>
<g id="a_edge3"><a xlink:title="at fuzz.go:8: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).Expiration]">
<g id="a_edge4"><a xlink:title="at fuzz.go:8: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).Expiration]">
<path fill="none" stroke="#8b4513" d="M70.3728,-173C91.7248,-173 122.2521,-173 149.6217,-173"/>
<polygon fill="#8b4513" stroke="#8b4513" points="149.9311,-176.5001 159.931,-173 149.931,-169.5001 149.9311,-176.5001"/>
</a>
@ -99,9 +99,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/router_address.Fuzz&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).Options -->
<g id="edge4" class="edge">
<g id="edge5" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/router_address.Fuzz&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).Options</title>
<g id="a_edge4"><a xlink:title="at fuzz.go:9: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).Options]">
<g id="a_edge5"><a xlink:title="at fuzz.go:9: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).Options]">
<path fill="none" stroke="#8b4513" d="M70.3728,-182.8007C92.7676,-190.819 125.2557,-202.4512 153.6076,-212.6025"/>
<polygon fill="#8b4513" stroke="#8b4513" points="152.4489,-215.9052 163.0435,-215.981 154.8086,-209.3149 152.4489,-215.9052"/>
</a>
@ -118,9 +118,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/router_address.Fuzz&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).TransportStyle -->
<g id="edge5" class="edge">
<g id="edge1" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/fuzz/router_address.Fuzz&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).TransportStyle</title>
<g id="a_edge5"><a xlink:title="at fuzz.go:10: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).TransportStyle]">
<g id="a_edge1"><a xlink:title="at fuzz.go:10: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_address.RouterAddress).TransportStyle]">
<path fill="none" stroke="#8b4513" d="M59.628,-191.1509C78.7338,-211.2098 111.7512,-243.5148 145,-265 149.0077,-267.5898 153.2766,-270.0551 157.6487,-272.3782"/>
<polygon fill="#8b4513" stroke="#8b4513" points="156.211,-275.5729 166.7171,-276.9412 159.3574,-269.3198 156.211,-275.5729"/>
</a>

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/common/fuzz/router_identity"
![exportable.svg](exportable)
![exportable.svg](exportable.svg)

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/common/fuzz/string"
![exportable.svg](exportable)
![exportable.svg](exportable.svg)

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/common/key_certificate"
![key_certificate.svg](key_certificate)
![key_certificate.svg](key_certificate.svg)
Package key_certificate implements the I2P Destination common data structure

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/common/keys_and_cert"
![keys_and_cert.svg](keys_and_cert)
![keys_and_cert.svg](keys_and_cert.svg)
Package keys_and_cert implements the I2P KeysAndCert common data structure

View File

@ -4,62 +4,62 @@
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: gocallvis Pages: 1 -->
<svg width="518pt" height="992pt"
viewBox="0.00 0.00 517.94 992.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 992)">
<svg width="518pt" height="983pt"
viewBox="0.00 0.00 517.94 983.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 983)">
<title>gocallvis</title>
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-992 517.944,-992 517.944,0 0,0"/>
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-983 517.944,-983 517.944,0 0,0"/>
<g id="clust1" class="cluster">
<title>cluster_focus</title>
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-984 509.944,-984 509.944,-8 8,-8"/>
<text text-anchor="middle" x="258.972" y="-963.8" font-family="Arial" font-size="18.00" fill="#000000">keys_and_cert</text>
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-975 509.944,-975 509.944,-8 8,-8"/>
<text text-anchor="middle" x="258.972" y="-954.8" font-family="Arial" font-size="18.00" fill="#000000">keys_and_cert</text>
</g>
<g id="clust6" class="cluster">
<title>cluster_github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert</title>
<g id="a_clust6"><a xlink:title="type: github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert">
<path fill="#b0c4de" stroke="#000000" stroke-width=".5" d="M82.9783,-788C82.9783,-788 172.8647,-788 172.8647,-788 178.8647,-788 184.8647,-794 184.8647,-800 184.8647,-800 184.8647,-854 184.8647,-854 184.8647,-860 178.8647,-866 172.8647,-866 172.8647,-866 82.9783,-866 82.9783,-866 76.9783,-866 70.9783,-860 70.9783,-854 70.9783,-854 70.9783,-800 70.9783,-800 70.9783,-794 76.9783,-788 82.9783,-788"/>
<text text-anchor="middle" x="127.9215" y="-796.5" font-family="Arial" font-size="15.00" fill="#222222">(KeysAndCert)</text>
<path fill="#b0c4de" stroke="#000000" stroke-width=".5" d="M82.9783,-421C82.9783,-421 172.8647,-421 172.8647,-421 178.8647,-421 184.8647,-427 184.8647,-433 184.8647,-433 184.8647,-487 184.8647,-487 184.8647,-493 178.8647,-499 172.8647,-499 172.8647,-499 82.9783,-499 82.9783,-499 76.9783,-499 70.9783,-493 70.9783,-487 70.9783,-487 70.9783,-433 70.9783,-433 70.9783,-427 76.9783,-421 82.9783,-421"/>
<text text-anchor="middle" x="127.9215" y="-429.5" font-family="Arial" font-size="15.00" fill="#222222">(KeysAndCert)</text>
</a>
</g>
</g>
<g id="clust5" class="cluster">
<title>cluster_github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate</title>
<g id="a_clust5"><a xlink:title="type: github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate">
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M316.843,-16C316.843,-16 489.944,-16 489.944,-16 495.944,-16 501.944,-22 501.944,-28 501.944,-28 501.944,-387 501.944,-387 501.944,-393 495.944,-399 489.944,-399 489.944,-399 316.843,-399 316.843,-399 310.843,-399 304.843,-393 304.843,-387 304.843,-387 304.843,-28 304.843,-28 304.843,-22 310.843,-16 316.843,-16"/>
<text text-anchor="middle" x="403.3935" y="-24.5" font-family="Arial" font-size="15.00" fill="#222222">(KeyCertificate)</text>
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M316.843,-554C316.843,-554 489.944,-554 489.944,-554 495.944,-554 501.944,-560 501.944,-566 501.944,-566 501.944,-925 501.944,-925 501.944,-931 495.944,-937 489.944,-937 489.944,-937 316.843,-937 316.843,-937 310.843,-937 304.843,-931 304.843,-925 304.843,-925 304.843,-566 304.843,-566 304.843,-560 310.843,-554 316.843,-554"/>
<text text-anchor="middle" x="403.3935" y="-562.5" font-family="Arial" font-size="15.00" fill="#222222">(KeyCertificate)</text>
</a>
</g>
</g>
<g id="clust4" class="cluster">
<title>cluster_*github.com/sirupsen/logrus.Logger</title>
<g id="a_clust4"><a xlink:title="type: *github.com/sirupsen/logrus.Logger">
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M376.7329,-729C376.7329,-729 431.0541,-729 431.0541,-729 437.0541,-729 443.0541,-735 443.0541,-741 443.0541,-741 443.0541,-795 443.0541,-795 443.0541,-801 437.0541,-807 431.0541,-807 431.0541,-807 376.7329,-807 376.7329,-807 370.7329,-807 364.7329,-801 364.7329,-795 364.7329,-795 364.7329,-741 364.7329,-741 364.7329,-735 370.7329,-729 376.7329,-729"/>
<text text-anchor="middle" x="403.8935" y="-737.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M376.7329,-329C376.7329,-329 431.0541,-329 431.0541,-329 437.0541,-329 443.0541,-335 443.0541,-341 443.0541,-341 443.0541,-395 443.0541,-395 443.0541,-401 437.0541,-407 431.0541,-407 431.0541,-407 376.7329,-407 376.7329,-407 370.7329,-407 364.7329,-401 364.7329,-395 364.7329,-395 364.7329,-341 364.7329,-341 364.7329,-335 370.7329,-329 376.7329,-329"/>
<text text-anchor="middle" x="403.8935" y="-337.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
</a>
</g>
</g>
<g id="clust3" class="cluster">
<title>cluster_*github.com/go&#45;i2p/logger.Logger</title>
<g id="a_clust3"><a xlink:title="type: *github.com/go&#45;i2p/logger.Logger">
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M364.2841,-521C364.2841,-521 442.5029,-521 442.5029,-521 448.5029,-521 454.5029,-527 454.5029,-533 454.5029,-533 454.5029,-709 454.5029,-709 454.5029,-715 448.5029,-721 442.5029,-721 442.5029,-721 364.2841,-721 364.2841,-721 358.2841,-721 352.2841,-715 352.2841,-709 352.2841,-709 352.2841,-533 352.2841,-533 352.2841,-527 358.2841,-521 364.2841,-521"/>
<text text-anchor="middle" x="403.3935" y="-529.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M364.2841,-121C364.2841,-121 442.5029,-121 442.5029,-121 448.5029,-121 454.5029,-127 454.5029,-133 454.5029,-133 454.5029,-309 454.5029,-309 454.5029,-315 448.5029,-321 442.5029,-321 442.5029,-321 364.2841,-321 364.2841,-321 358.2841,-321 352.2841,-315 352.2841,-309 352.2841,-309 352.2841,-133 352.2841,-133 352.2841,-127 358.2841,-121 364.2841,-121"/>
<text text-anchor="middle" x="403.3935" y="-129.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
</a>
</g>
</g>
<g id="clust2" class="cluster">
<title>cluster_*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate</title>
<g id="a_clust2"><a xlink:title="type: *github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate">
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M366.4152,-815C366.4152,-815 441.3718,-815 441.3718,-815 447.3718,-815 453.3718,-821 453.3718,-827 453.3718,-827 453.3718,-881 453.3718,-881 453.3718,-887 447.3718,-893 441.3718,-893 441.3718,-893 366.4152,-893 366.4152,-893 360.4152,-893 354.4152,-887 354.4152,-881 354.4152,-881 354.4152,-827 354.4152,-827 354.4152,-821 360.4152,-815 366.4152,-815"/>
<text text-anchor="middle" x="403.8935" y="-823.5" font-family="Arial" font-size="15.00" fill="#222222">(*Certificate)</text>
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M366.4152,-415C366.4152,-415 441.3718,-415 441.3718,-415 447.3718,-415 453.3718,-421 453.3718,-427 453.3718,-427 453.3718,-481 453.3718,-481 453.3718,-487 447.3718,-493 441.3718,-493 441.3718,-493 366.4152,-493 366.4152,-493 360.4152,-493 354.4152,-487 354.4152,-481 354.4152,-481 354.4152,-427 354.4152,-427 354.4152,-421 360.4152,-415 366.4152,-415"/>
<text text-anchor="middle" x="403.8935" y="-423.5" font-family="Arial" font-size="15.00" fill="#222222">(*Certificate)</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert -->
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert -->
<g id="node1" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert</title>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert | defined in keys_and_cert.go:300&#10;at keys_and_cert.go:309: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:323: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:334: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:345: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:310: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:324: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:335: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:346: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:320: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:331: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:342: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:306: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at keys_and_cert.go:314: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize]&#10;at keys_and_cert.go:315: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SignatureSize]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M179.8247,-547C179.8247,-547 76.0183,-547 76.0183,-547 70.0183,-547 64.0183,-541 64.0183,-535 64.0183,-535 64.0183,-523 64.0183,-523 64.0183,-517 70.0183,-511 76.0183,-511 76.0183,-511 179.8247,-511 179.8247,-511 185.8247,-511 191.8247,-517 191.8247,-523 191.8247,-523 191.8247,-535 191.8247,-535 191.8247,-541 185.8247,-547 179.8247,-547"/>
<text text-anchor="middle" x="127.9215" y="-524.8" font-family="Verdana" font-size="14.00" fill="#000000">NewKeysAndCert</text>
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert</title>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert | defined in keys_and_cert.go:142&#10;at keys_and_cert.go:194: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType]&#10;at keys_and_cert.go:161: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:172: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:188: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:184: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey]&#10;at keys_and_cert.go:155: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:193: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType]&#10;at keys_and_cert.go:145: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at keys_and_cert.go:197: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at keys_and_cert.go:159: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.NewKeyCertificate]&#10;at keys_and_cert.go:167: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SignatureSize]&#10;at keys_and_cert.go:143: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:149: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:192: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:154: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:161: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:172: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:188: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:166: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize]&#10;at keys_and_cert.go:170: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M180.6624,-693C180.6624,-693 75.1806,-693 75.1806,-693 69.1806,-693 63.1806,-687 63.1806,-681 63.1806,-681 63.1806,-669 63.1806,-669 63.1806,-663 69.1806,-657 75.1806,-657 75.1806,-657 180.6624,-657 180.6624,-657 186.6624,-657 192.6624,-663 192.6624,-669 192.6624,-669 192.6624,-681 192.6624,-681 192.6624,-687 186.6624,-693 180.6624,-693"/>
<text text-anchor="middle" x="127.9215" y="-670.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadKeysAndCert</text>
</a>
</g>
</g>
@ -67,196 +67,75 @@
<g id="node2" class="node">
<title>github.com/samber/oops.Errorf</title>
<g id="a_node2"><a xlink:title="github.com/samber/oops.Errorf | defined in oops.go:34">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M420.5888,-452C420.5888,-452 386.1982,-452 386.1982,-452 380.1982,-452 374.1982,-446 374.1982,-440 374.1982,-440 374.1982,-428 374.1982,-428 374.1982,-422 380.1982,-416 386.1982,-416 386.1982,-416 420.5888,-416 420.5888,-416 426.5888,-416 432.5888,-422 432.5888,-428 432.5888,-428 432.5888,-440 432.5888,-440 432.5888,-446 426.5888,-452 420.5888,-452"/>
<text text-anchor="middle" x="403.3935" y="-438.2" font-family="Verdana" font-size="14.00" fill="#000000">oops</text>
<text text-anchor="middle" x="403.3935" y="-421.4" font-family="Verdana" font-size="14.00" fill="#000000">Errorf</text>
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M420.5888,-113C420.5888,-113 386.1982,-113 386.1982,-113 380.1982,-113 374.1982,-107 374.1982,-101 374.1982,-101 374.1982,-89 374.1982,-89 374.1982,-83 380.1982,-77 386.1982,-77 386.1982,-77 420.5888,-77 420.5888,-77 426.5888,-77 432.5888,-83 432.5888,-89 432.5888,-89 432.5888,-101 432.5888,-101 432.5888,-107 426.5888,-113 420.5888,-113"/>
<text text-anchor="middle" x="403.3935" y="-99.2" font-family="Verdana" font-size="14.00" fill="#000000">oops</text>
<text text-anchor="middle" x="403.3935" y="-82.4" font-family="Verdana" font-size="14.00" fill="#000000">Errorf</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge21" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge21"><a xlink:title="at keys_and_cert.go:310: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:324: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:335: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:346: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M191.9394,-523.5851C219.5012,-519.1019 251.2098,-510.9204 276.843,-496 292.8886,-486.6603 289.2172,-475.0263 304.843,-465 322.7573,-453.5053 345.2403,-446.0061 364.2067,-441.2681"/>
<polygon fill="#8b4513" stroke="#8b4513" points="365.1012,-444.6534 374.0451,-438.9739 363.5115,-437.8363 365.1012,-444.6534"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="node11" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_node11"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).Error | defined in log.go:42">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M421.1598,-652C421.1598,-652 385.6272,-652 385.6272,-652 379.6272,-652 373.6272,-646 373.6272,-640 373.6272,-640 373.6272,-628 373.6272,-628 373.6272,-622 379.6272,-616 385.6272,-616 385.6272,-616 421.1598,-616 421.1598,-616 427.1598,-616 433.1598,-622 433.1598,-628 433.1598,-628 433.1598,-640 433.1598,-640 433.1598,-646 427.1598,-652 421.1598,-652"/>
<text text-anchor="middle" x="403.3935" y="-638.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="403.3935" y="-621.4" font-family="Verdana" font-size="14.00" fill="#000000">Error</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="edge14" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_edge14"><a xlink:title="at keys_and_cert.go:309: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:323: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:334: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:345: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M191.8575,-533.1233C219.8762,-537.45 251.9673,-546.053 276.843,-563 295.0793,-575.4238 287.0594,-590.9365 304.843,-604 321.948,-616.565 344.372,-623.9274 363.508,-628.2105"/>
<polygon fill="#8b4513" stroke="#8b4513" points="362.96,-631.6707 373.457,-630.2338 364.3551,-624.8111 362.96,-631.6707"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="node12" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_node12"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).WithFields | defined in log.go:60">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M434.6126,-713C434.6126,-713 372.1744,-713 372.1744,-713 366.1744,-713 360.1744,-707 360.1744,-701 360.1744,-701 360.1744,-689 360.1744,-689 360.1744,-683 366.1744,-677 372.1744,-677 372.1744,-677 434.6126,-677 434.6126,-677 440.6126,-677 446.6126,-683 446.6126,-689 446.6126,-689 446.6126,-701 446.6126,-701 446.6126,-707 440.6126,-713 434.6126,-713"/>
<text text-anchor="middle" x="403.3935" y="-699.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="403.3935" y="-682.4" font-family="Verdana" font-size="14.00" fill="#000000">WithFields</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge22" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge22"><a xlink:title="at keys_and_cert.go:320: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:331: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:342: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M146.4943,-547.0103C177.1023,-575.7793 241.1194,-632.1939 304.843,-665 318.9304,-672.2525 335.0702,-678.0781 350.1546,-682.596"/>
<polygon fill="#8b4513" stroke="#8b4513" points="349.3058,-685.9935 359.8827,-685.3778 351.2304,-679.2632 349.3058,-685.9935"/>
</a>
</g>
</g>
<!-- (*github.com/sirupsen/logrus.Logger).Debug -->
<g id="node14" class="node">
<title>(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_node14"><a xlink:title="(*github.com/sirupsen/logrus.Logger).Debug | defined in logger.go:221">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M422.2155,-799C422.2155,-799 384.5715,-799 384.5715,-799 378.5715,-799 372.5715,-793 372.5715,-787 372.5715,-787 372.5715,-775 372.5715,-775 372.5715,-769 378.5715,-763 384.5715,-763 384.5715,-763 422.2155,-763 422.2155,-763 428.2155,-763 434.2155,-769 434.2155,-775 434.2155,-775 434.2155,-787 434.2155,-787 434.2155,-793 428.2155,-799 422.2155,-799"/>
<text text-anchor="middle" x="403.3935" y="-785.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
<text text-anchor="middle" x="403.3935" y="-768.4" font-family="Verdana" font-size="14.00" fill="#000000">Debug</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge23" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge23"><a xlink:title="at keys_and_cert.go:306: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M142.8206,-547.2031C178.4261,-590.4453 268.2089,-697.8923 304.843,-727 322.6144,-741.1204 344.5875,-753.5594 363.2726,-762.929"/>
<polygon fill="#8b4513" stroke="#8b4513" points="361.9049,-766.1562 372.4255,-767.4084 364.982,-759.8688 361.9049,-766.1562"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize -->
<g id="node15" class="node">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize</title>
<g id="a_node15"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize | defined in key_certificate.go:336">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M445.0648,-330C445.0648,-330 361.7222,-330 361.7222,-330 355.7222,-330 349.7222,-324 349.7222,-318 349.7222,-318 349.7222,-306 349.7222,-306 349.7222,-300 355.7222,-294 361.7222,-294 361.7222,-294 445.0648,-294 445.0648,-294 451.0648,-294 457.0648,-300 457.0648,-306 457.0648,-306 457.0648,-318 457.0648,-318 457.0648,-324 451.0648,-330 445.0648,-330"/>
<text text-anchor="middle" x="403.3935" y="-316.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
<text text-anchor="middle" x="403.3935" y="-299.4" font-family="Verdana" font-size="14.00" fill="#000000">CryptoSize</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize -->
<g id="edge27" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize</title>
<g id="a_edge27"><a xlink:title="at keys_and_cert.go:314: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize]">
<path fill="none" stroke="#8b4513" d="M191.6918,-511.5645C208.8688,-504.5279 226.3947,-494.9229 239.843,-482 289.0177,-434.7464 253.5291,-387.9215 304.843,-343 314.8443,-334.2446 327.314,-327.9605 339.9848,-323.4505"/>
<polygon fill="#8b4513" stroke="#8b4513" points="341.2264,-326.7279 349.6759,-320.336 339.0846,-320.0636 341.2264,-326.7279"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SignatureSize -->
<g id="node16" class="node">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SignatureSize</title>
<g id="a_node16"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SignatureSize | defined in key_certificate.go:308">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M445.0648,-391C445.0648,-391 361.7222,-391 361.7222,-391 355.7222,-391 349.7222,-385 349.7222,-379 349.7222,-379 349.7222,-367 349.7222,-367 349.7222,-361 355.7222,-355 361.7222,-355 361.7222,-355 445.0648,-355 445.0648,-355 451.0648,-355 457.0648,-361 457.0648,-367 457.0648,-367 457.0648,-379 457.0648,-379 457.0648,-385 451.0648,-391 445.0648,-391"/>
<text text-anchor="middle" x="403.3935" y="-377.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
<text text-anchor="middle" x="403.3935" y="-360.4" font-family="Verdana" font-size="14.00" fill="#000000">SignatureSize</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SignatureSize -->
<g id="edge29" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SignatureSize</title>
<g id="a_edge29"><a xlink:title="at keys_and_cert.go:315: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SignatureSize]">
<path fill="none" stroke="#8b4513" d="M191.7794,-515.7539C220.9621,-506.8399 254.029,-492.3045 276.843,-469 301.4422,-443.8719 278.2756,-418.0372 304.843,-395 314.6146,-386.5268 326.9391,-381.1103 339.5335,-377.6923"/>
<polygon fill="#8b4513" stroke="#8b4513" points="340.6906,-381.0174 349.6481,-375.3594 339.1173,-374.1964 340.6906,-381.0174"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.init -->
<g id="node3" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.init</title>
<g id="a_node3"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.init | defined in .:0&#10;at keys_and_cert.go:14: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M142.9215,-946C142.9215,-946 112.9215,-946 112.9215,-946 106.9215,-946 100.9215,-940 100.9215,-934 100.9215,-934 100.9215,-922 100.9215,-922 100.9215,-916 106.9215,-910 112.9215,-910 112.9215,-910 142.9215,-910 142.9215,-910 148.9215,-910 154.9215,-916 154.9215,-922 154.9215,-922 154.9215,-934 154.9215,-934 154.9215,-940 148.9215,-946 142.9215,-946"/>
<text text-anchor="middle" x="127.9215" y="-923.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="node4" class="node">
<title>github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_node4"><a xlink:title="github.com/go&#45;i2p/logger.GetGoI2PLogger | defined in log.go:120">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M452.083,-946C452.083,-946 354.704,-946 354.704,-946 348.704,-946 342.704,-940 342.704,-934 342.704,-934 342.704,-922 342.704,-922 342.704,-916 348.704,-910 354.704,-910 354.704,-910 452.083,-910 452.083,-910 458.083,-910 464.083,-916 464.083,-922 464.083,-922 464.083,-934 464.083,-934 464.083,-940 458.083,-946 452.083,-946"/>
<text text-anchor="middle" x="403.3935" y="-932.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="403.3935" y="-915.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="edge17" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_edge17"><a xlink:title="at keys_and_cert.go:14: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="none" stroke="#8b4513" d="M155.0887,-928C195.9363,-928 274.546,-928 332.4167,-928"/>
<polygon fill="#8b4513" stroke="#8b4513" points="332.6037,-931.5001 342.6036,-928 332.6036,-924.5001 332.6037,-931.5001"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519 -->
<g id="node5" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519</title>
<g id="a_node5"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519 | defined in keys_and_cert.go:202&#10;at keys_and_cert.go:205: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at keys_and_cert.go:265: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at keys_and_cert.go:219: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:230: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:246: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:256: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:203: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:260: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:254: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.NewKeyCertificate]&#10;at keys_and_cert.go:218: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:229: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:245: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:219: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:230: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:246: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:256: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M227.7646,-709C227.7646,-709 28.0784,-709 28.0784,-709 22.0784,-709 16.0784,-703 16.0784,-697 16.0784,-697 16.0784,-685 16.0784,-685 16.0784,-679 22.0784,-673 28.0784,-673 28.0784,-673 227.7646,-673 227.7646,-673 233.7646,-673 239.7646,-679 239.7646,-685 239.7646,-685 239.7646,-697 239.7646,-697 239.7646,-703 233.7646,-709 227.7646,-709"/>
<text text-anchor="middle" x="127.9215" y="-686.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadKeysAndCertElgAndEd25519</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge18" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge18"><a xlink:title="at keys_and_cert.go:218: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:229: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:245: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M144.5021,-672.8624C166.9367,-648.0422 207.8336,-601.7988 239.843,-560 247.6192,-549.8456 294.5672,-472.615 304.843,-465 322.0662,-452.2366 344.6884,-444.6339 363.9142,-440.1551"/>
<polygon fill="#8b4513" stroke="#8b4513" points="364.8469,-443.5351 373.9,-438.0312 363.3906,-436.6883 364.8469,-443.5351"/>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge8" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge8"><a xlink:title="at keys_and_cert.go:155: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M143.8627,-656.5842C168.659,-626.8653 216.0827,-565.521 239.843,-505 271.7913,-423.623 244.7054,-180.4538 304.843,-117 319.9046,-101.1079 343.7276,-95.4861 364.1779,-93.896"/>
<polygon fill="#8b4513" stroke="#8b4513" points="364.379,-97.3905 374.1957,-93.4052 364.0364,-90.3989 364.379,-97.3905"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.NewKeyCertificate -->
<g id="node6" class="node">
<g id="node3" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.NewKeyCertificate</title>
<g id="a_node6"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.NewKeyCertificate | defined in key_certificate.go:356">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M457.7212,-513C457.7212,-513 349.0658,-513 349.0658,-513 343.0658,-513 337.0658,-507 337.0658,-501 337.0658,-501 337.0658,-489 337.0658,-489 337.0658,-483 343.0658,-477 349.0658,-477 349.0658,-477 457.7212,-477 457.7212,-477 463.7212,-477 469.7212,-483 469.7212,-489 469.7212,-489 469.7212,-501 469.7212,-501 469.7212,-507 463.7212,-513 457.7212,-513"/>
<text text-anchor="middle" x="403.3935" y="-499.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
<text text-anchor="middle" x="403.3935" y="-482.4" font-family="Verdana" font-size="14.00" fill="#000000">NewKeyCertificate</text>
<g id="a_node3"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.NewKeyCertificate | defined in key_certificate.go:356">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M457.7212,-546C457.7212,-546 349.0658,-546 349.0658,-546 343.0658,-546 337.0658,-540 337.0658,-534 337.0658,-534 337.0658,-522 337.0658,-522 337.0658,-516 343.0658,-510 349.0658,-510 349.0658,-510 457.7212,-510 457.7212,-510 463.7212,-510 469.7212,-516 469.7212,-522 469.7212,-522 469.7212,-534 469.7212,-534 469.7212,-540 463.7212,-546 457.7212,-546"/>
<text text-anchor="middle" x="403.3935" y="-532.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
<text text-anchor="middle" x="403.3935" y="-515.4" font-family="Verdana" font-size="14.00" fill="#000000">NewKeyCertificate</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.NewKeyCertificate -->
<g id="edge9" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.NewKeyCertificate</title>
<g id="a_edge9"><a xlink:title="at keys_and_cert.go:254: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.NewKeyCertificate]">
<path fill="none" stroke="#8b4513" d="M211.1194,-672.9669C235.3022,-664.0021 259.7696,-650.691 276.843,-631 311.0215,-591.5816 267.5622,-553.4982 304.843,-517 311.2595,-510.7181 319.0538,-506.0694 327.4177,-502.6516"/>
<polygon fill="#8b4513" stroke="#8b4513" points="328.7665,-505.8881 337.0596,-499.2945 326.4648,-499.2774 328.7665,-505.8881"/>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.NewKeyCertificate -->
<g id="edge15" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.NewKeyCertificate</title>
<g id="a_edge15"><a xlink:title="at keys_and_cert.go:159: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.NewKeyCertificate]">
<path fill="none" stroke="#8b4513" d="M192.97,-674.8638C221.8889,-671.5212 254.395,-662.7751 276.843,-642 308.2115,-612.9693 273.4972,-579.0553 304.843,-550 311.3352,-543.9822 319.1006,-539.4824 327.3843,-536.136"/>
<polygon fill="#8b4513" stroke="#8b4513" points="328.6168,-539.4132 336.9169,-532.8284 326.3221,-532.7999 328.6168,-539.4132"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="edge6" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_edge6"><a xlink:title="at keys_and_cert.go:219: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:230: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:246: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:256: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M239.8313,-693.5305C252.5154,-691.756 265.094,-689.0277 276.843,-685 291.3096,-680.0407 291.1567,-671.8236 304.843,-665 323.3976,-655.7492 345.2891,-648.5321 363.721,-643.3982"/>
<polygon fill="#8b4513" stroke="#8b4513" points="364.8089,-646.7302 373.5619,-640.7607 362.9967,-639.9689 364.8089,-646.7302"/>
<!-- (*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="node11" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_node11"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).WithFields | defined in log.go:60">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M434.6126,-252C434.6126,-252 372.1744,-252 372.1744,-252 366.1744,-252 360.1744,-246 360.1744,-240 360.1744,-240 360.1744,-228 360.1744,-228 360.1744,-222 366.1744,-216 372.1744,-216 372.1744,-216 434.6126,-216 434.6126,-216 440.6126,-216 446.6126,-222 446.6126,-228 446.6126,-228 446.6126,-240 446.6126,-240 446.6126,-246 440.6126,-252 434.6126,-252"/>
<text text-anchor="middle" x="403.3935" y="-238.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="403.3935" y="-221.4" font-family="Verdana" font-size="14.00" fill="#000000">WithFields</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge8" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge8"><a xlink:title="at keys_and_cert.go:203: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:260: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M211.9675,-709.0014C233.0834,-711.8268 255.7408,-713.411 276.843,-712 301.0109,-710.384 327.6025,-707.0505 350.1459,-703.76"/>
<polygon fill="#8b4513" stroke="#8b4513" points="350.8231,-707.1978 360.1957,-702.2575 349.788,-700.2747 350.8231,-707.1978"/>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge19" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge19"><a xlink:title="at keys_and_cert.go:143: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:149: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:192: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M166.7371,-656.9252C201.9987,-638.2568 252.1576,-605.5781 276.843,-561 308.9578,-503.0055 262.9195,-315.3531 304.843,-264 316.0468,-250.2762 333.3358,-242.6814 350.3232,-238.5271"/>
<polygon fill="#8b4513" stroke="#8b4513" points="351.1673,-241.9265 360.242,-236.4584 349.7381,-235.0739 351.1673,-241.9265"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="node12" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_node12"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).Error | defined in log.go:42">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M421.1598,-191C421.1598,-191 385.6272,-191 385.6272,-191 379.6272,-191 373.6272,-185 373.6272,-179 373.6272,-179 373.6272,-167 373.6272,-167 373.6272,-161 379.6272,-155 385.6272,-155 385.6272,-155 421.1598,-155 421.1598,-155 427.1598,-155 433.1598,-161 433.1598,-167 433.1598,-167 433.1598,-179 433.1598,-179 433.1598,-185 427.1598,-191 421.1598,-191"/>
<text text-anchor="middle" x="403.3935" y="-177.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="403.3935" y="-160.4" font-family="Verdana" font-size="14.00" fill="#000000">Error</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="edge20" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_edge20"><a xlink:title="at keys_and_cert.go:154: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:161: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:172: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:188: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M157.5401,-656.8334C192.8637,-633.3427 250.4401,-588.8608 276.843,-534 308.8552,-467.4842 258.4356,-260.4063 304.843,-203 318.886,-185.6287 342.6844,-178.0668 363.3765,-174.8776"/>
<polygon fill="#8b4513" stroke="#8b4513" points="364.0468,-178.3211 373.5362,-173.6093 363.1797,-171.375 364.0468,-178.3211"/>
</a>
</g>
</g>
@ -264,126 +143,75 @@
<g id="node13" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).WithError</title>
<g id="a_node13"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).WithError | defined in log.go:66">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M431.925,-591C431.925,-591 374.862,-591 374.862,-591 368.862,-591 362.862,-585 362.862,-579 362.862,-579 362.862,-567 362.862,-567 362.862,-561 368.862,-555 374.862,-555 374.862,-555 431.925,-555 431.925,-555 437.925,-555 443.925,-561 443.925,-567 443.925,-567 443.925,-579 443.925,-579 443.925,-585 437.925,-591 431.925,-591"/>
<text text-anchor="middle" x="403.3935" y="-577.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="403.3935" y="-560.4" font-family="Verdana" font-size="14.00" fill="#000000">WithError</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError -->
<g id="edge25" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError</title>
<g id="a_edge25"><a xlink:title="at keys_and_cert.go:219: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:230: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:246: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:256: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="none" stroke="#8b4513" d="M240.1058,-677.517C253.2972,-672.735 265.9245,-666.3912 276.843,-658 298.2784,-641.5262 284.1415,-621.3872 304.843,-604 318.264,-592.7277 335.7984,-585.5441 352.3504,-580.9702"/>
<polygon fill="#8b4513" stroke="#8b4513" points="353.6262,-584.2595 362.4838,-578.4464 351.9344,-577.467 353.6262,-584.2595"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge5" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge5"><a xlink:title="at keys_and_cert.go:205: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at keys_and_cert.go:265: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M156.1186,-709.1141C184.9835,-726.7185 231.7394,-752.6871 275.843,-766 304.0779,-774.5228 337.1882,-778.2428 362.5975,-779.8479"/>
<polygon fill="#8b4513" stroke="#8b4513" points="362.4519,-783.3451 372.6286,-780.3979 362.8352,-776.3555 362.4519,-783.3451"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.constructSigningPublicKey -->
<g id="node7" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.constructSigningPublicKey</title>
<g id="a_node7"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.constructSigningPublicKey | defined in keys_and_cert.go:285&#10;at keys_and_cert.go:294: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:289: calling [github.com/samber/oops.Errorf]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M204.9005,-469C204.9005,-469 50.9425,-469 50.9425,-469 44.9425,-469 38.9425,-463 38.9425,-457 38.9425,-457 38.9425,-445 38.9425,-445 38.9425,-439 44.9425,-433 50.9425,-433 50.9425,-433 204.9005,-433 204.9005,-433 210.9005,-433 216.9005,-439 216.9005,-445 216.9005,-445 216.9005,-457 216.9005,-457 216.9005,-463 210.9005,-469 204.9005,-469"/>
<text text-anchor="middle" x="127.9215" y="-446.8" font-family="Verdana" font-size="14.00" fill="#000000">constructSigningPublicKey</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.constructSigningPublicKey&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge1" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.constructSigningPublicKey&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge1"><a xlink:title="at keys_and_cert.go:294: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:289: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M216.9789,-445.5041C266.5502,-442.4449 325.7755,-438.79 363.9573,-436.4337"/>
<polygon fill="#8b4513" stroke="#8b4513" points="364.3775,-439.9145 374.1429,-435.8051 363.9463,-432.9278 364.3775,-439.9145"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert -->
<g id="node8" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert</title>
<g id="a_node8"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert | defined in keys_and_cert.go:142&#10;at keys_and_cert.go:143: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:149: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:192: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:159: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.NewKeyCertificate]&#10;at keys_and_cert.go:170: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey]&#10;at keys_and_cert.go:154: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:161: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:172: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:188: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:161: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:172: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:188: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:166: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize]&#10;at keys_and_cert.go:167: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SignatureSize]&#10;at keys_and_cert.go:155: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:193: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType]&#10;at keys_and_cert.go:194: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType]&#10;at keys_and_cert.go:184: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey]&#10;at keys_and_cert.go:145: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at keys_and_cert.go:197: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M180.6624,-277C180.6624,-277 75.1806,-277 75.1806,-277 69.1806,-277 63.1806,-271 63.1806,-265 63.1806,-265 63.1806,-253 63.1806,-253 63.1806,-247 69.1806,-241 75.1806,-241 75.1806,-241 180.6624,-241 180.6624,-241 186.6624,-241 192.6624,-247 192.6624,-253 192.6624,-253 192.6624,-265 192.6624,-265 192.6624,-271 186.6624,-277 180.6624,-277"/>
<text text-anchor="middle" x="127.9215" y="-254.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadKeysAndCert</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge19" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge19"><a xlink:title="at keys_and_cert.go:155: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M192.7302,-259.0243C221.9498,-262.3951 254.7737,-271.3789 276.843,-293 313.4948,-328.9074 269.3167,-367.9787 304.843,-405 320.1606,-420.9622 343.772,-428.2644 364.0435,-431.5511"/>
<polygon fill="#8b4513" stroke="#8b4513" points="363.5969,-435.0225 373.976,-432.8956 364.5359,-428.0858 363.5969,-435.0225"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.NewKeyCertificate -->
<g id="edge3" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.NewKeyCertificate</title>
<g id="a_edge3"><a xlink:title="at keys_and_cert.go:159: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.NewKeyCertificate]">
<path fill="none" stroke="#8b4513" d="M192.8759,-270.835C222.6765,-279.5451 255.9492,-294.4977 276.843,-320 318.4393,-370.7711 260.9252,-416.2232 304.843,-465 311.1266,-471.9788 318.9785,-477.3569 327.4911,-481.4973"/>
<polygon fill="#8b4513" stroke="#8b4513" points="326.3726,-484.825 336.9445,-485.5215 329.1143,-478.3843 326.3726,-484.825"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="edge7" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_edge7"><a xlink:title="at keys_and_cert.go:154: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:161: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:172: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:188: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M165.7988,-277.1123C200.8988,-296.0575 251.4049,-329.2799 276.843,-374 327.7584,-463.5091 238.6438,-525.1209 304.843,-604 319.1045,-620.9932 342.6833,-628.562 363.2017,-631.8497"/>
<polygon fill="#8b4513" stroke="#8b4513" points="362.9088,-635.3412 373.2797,-633.1743 363.8211,-628.4009 362.9088,-635.3412"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge2" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge2"><a xlink:title="at keys_and_cert.go:143: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:149: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:192: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M156.4725,-277.0049C182.3411,-294.8656 219.4383,-324.6345 239.843,-360 309.1082,-480.0509 211.1175,-562.8951 304.843,-665 316.4609,-677.6566 333.2365,-685.0389 349.663,-689.3229"/>
<polygon fill="#8b4513" stroke="#8b4513" points="349.2713,-692.8225 359.7965,-691.6094 350.8121,-685.9941 349.2713,-692.8225"/>
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M431.925,-313C431.925,-313 374.862,-313 374.862,-313 368.862,-313 362.862,-307 362.862,-301 362.862,-301 362.862,-289 362.862,-289 362.862,-283 368.862,-277 374.862,-277 374.862,-277 431.925,-277 431.925,-277 437.925,-277 443.925,-283 443.925,-289 443.925,-289 443.925,-301 443.925,-301 443.925,-307 437.925,-313 431.925,-313"/>
<text text-anchor="middle" x="403.3935" y="-299.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="403.3935" y="-282.4" font-family="Verdana" font-size="14.00" fill="#000000">WithError</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError -->
<g id="edge10" class="edge">
<g id="edge4" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError</title>
<g id="a_edge10"><a xlink:title="at keys_and_cert.go:161: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:172: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:188: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="none" stroke="#8b4513" d="M181.9705,-277.0762C214.805,-290.9489 254.5632,-313.4889 276.843,-347 327.5114,-423.2104 242.8792,-483.6517 304.843,-551 316.9481,-564.157 335.0487,-570.3226 352.4469,-572.9792"/>
<polygon fill="#8b4513" stroke="#8b4513" points="352.2194,-576.4764 362.5588,-574.1641 353.0342,-569.5239 352.2194,-576.4764"/>
<g id="a_edge4"><a xlink:title="at keys_and_cert.go:161: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:172: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:188: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="none" stroke="#8b4513" d="M183.7946,-656.9047C216.4688,-643.2906 255.3921,-621.1975 276.843,-588 341.1192,-488.5262 228.5804,-413.6117 304.843,-323 316.6193,-309.0079 334.8337,-301.7386 352.4149,-298.0489"/>
<polygon fill="#8b4513" stroke="#8b4513" points="353.3895,-301.4318 362.6397,-296.2663 352.1872,-294.5359 353.3895,-301.4318"/>
</a>
</g>
</g>
<!-- (*github.com/sirupsen/logrus.Logger).Debug -->
<g id="node14" class="node">
<title>(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_node14"><a xlink:title="(*github.com/sirupsen/logrus.Logger).Debug | defined in logger.go:221">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M422.2155,-399C422.2155,-399 384.5715,-399 384.5715,-399 378.5715,-399 372.5715,-393 372.5715,-387 372.5715,-387 372.5715,-375 372.5715,-375 372.5715,-369 378.5715,-363 384.5715,-363 384.5715,-363 422.2155,-363 422.2155,-363 428.2155,-363 434.2155,-369 434.2155,-375 434.2155,-375 434.2155,-387 434.2155,-387 434.2155,-393 428.2155,-399 422.2155,-399"/>
<text text-anchor="middle" x="403.3935" y="-385.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
<text text-anchor="middle" x="403.3935" y="-368.4" font-family="Verdana" font-size="14.00" fill="#000000">Debug</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge28" class="edge">
<g id="edge14" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge28"><a xlink:title="at keys_and_cert.go:145: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at keys_and_cert.go:197: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M157.4347,-277.0911C183.599,-294.8102 220.5613,-324.3071 239.843,-360 318.5749,-505.7432 205.8425,-594.1892 304.843,-727 319.2371,-746.3099 342.6657,-759.5535 363.0684,-768.0912"/>
<polygon fill="#8b4513" stroke="#8b4513" points="361.8993,-771.3924 372.4863,-771.7989 364.4635,-764.8789 361.8993,-771.3924"/>
<g id="a_edge14"><a xlink:title="at keys_and_cert.go:145: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at keys_and_cert.go:197: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M192.7169,-664.3298C222.8565,-655.9798 256.4681,-641.1747 276.843,-615 333.5988,-542.0887 244.2982,-478.7969 304.843,-409 319.1007,-392.5635 342.2361,-385.4419 362.5088,-382.486"/>
<polygon fill="#8b4513" stroke="#8b4513" points="362.9564,-385.9576 372.4822,-381.3197 362.1433,-379.005 362.9564,-385.9576"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize -->
<g id="node15" class="node">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize</title>
<g id="a_node15"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize | defined in key_certificate.go:336">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M445.0648,-685C445.0648,-685 361.7222,-685 361.7222,-685 355.7222,-685 349.7222,-679 349.7222,-673 349.7222,-673 349.7222,-661 349.7222,-661 349.7222,-655 355.7222,-649 361.7222,-649 361.7222,-649 445.0648,-649 445.0648,-649 451.0648,-649 457.0648,-655 457.0648,-661 457.0648,-661 457.0648,-673 457.0648,-673 457.0648,-679 451.0648,-685 445.0648,-685"/>
<text text-anchor="middle" x="403.3935" y="-671.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
<text text-anchor="middle" x="403.3935" y="-654.4" font-family="Verdana" font-size="14.00" fill="#000000">CryptoSize</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize -->
<g id="edge11" class="edge">
<g id="edge21" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize</title>
<g id="a_edge11"><a xlink:title="at keys_and_cert.go:166: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize]">
<path fill="none" stroke="#8b4513" d="M168.5567,-240.9265C199.931,-229.8435 243.4755,-220.9096 276.843,-239 296.8917,-249.8696 286.6129,-268.2974 304.843,-282 315.1085,-289.716 327.3686,-295.4637 339.6967,-299.7403"/>
<polygon fill="#8b4513" stroke="#8b4513" points="338.9714,-303.1818 349.5614,-302.8641 341.0846,-296.5084 338.9714,-303.1818"/>
<g id="a_edge21"><a xlink:title="at keys_and_cert.go:166: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize]">
<path fill="none" stroke="#8b4513" d="M192.6966,-691.3183C218.7969,-696.016 249.2118,-699.1254 276.843,-696 297.5359,-693.6594 319.7758,-689.231 339.7508,-684.5266"/>
<polygon fill="#8b4513" stroke="#8b4513" points="340.7669,-687.8818 349.6628,-682.1273 339.12,-681.0783 340.7669,-687.8818"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SignatureSize -->
<g id="node16" class="node">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SignatureSize</title>
<g id="a_node16"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SignatureSize | defined in key_certificate.go:308">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M445.0648,-624C445.0648,-624 361.7222,-624 361.7222,-624 355.7222,-624 349.7222,-618 349.7222,-612 349.7222,-612 349.7222,-600 349.7222,-600 349.7222,-594 355.7222,-588 361.7222,-588 361.7222,-588 445.0648,-588 445.0648,-588 451.0648,-588 457.0648,-594 457.0648,-600 457.0648,-600 457.0648,-612 457.0648,-612 457.0648,-618 451.0648,-624 445.0648,-624"/>
<text text-anchor="middle" x="403.3935" y="-610.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
<text text-anchor="middle" x="403.3935" y="-593.4" font-family="Verdana" font-size="14.00" fill="#000000">SignatureSize</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SignatureSize -->
<g id="edge12" class="edge">
<g id="edge16" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SignatureSize</title>
<g id="a_edge12"><a xlink:title="at keys_and_cert.go:167: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SignatureSize]">
<path fill="none" stroke="#8b4513" d="M192.9881,-246.9051C221.2302,-245.2374 253.1835,-248.586 276.843,-266 306.1702,-287.5856 278.4173,-317.9459 304.843,-343 314.5648,-352.2173 327.0349,-358.609 339.8126,-363.0396"/>
<polygon fill="#8b4513" stroke="#8b4513" points="339.016,-366.4566 349.6034,-366.0598 341.0794,-359.7676 339.016,-366.4566"/>
<g id="a_edge16"><a xlink:title="at keys_and_cert.go:167: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SignatureSize]">
<path fill="none" stroke="#8b4513" d="M192.9302,-683.3546C220.0593,-684.1156 251.1657,-681.2808 276.843,-669 293.8915,-660.8461 289.0186,-647.3307 304.843,-637 315.4495,-630.0758 327.7038,-624.6127 339.8897,-620.3316"/>
<polygon fill="#8b4513" stroke="#8b4513" points="341.2013,-623.585 349.6151,-617.1462 339.0224,-616.9327 341.2013,-623.585"/>
</a>
</g>
</g>
@ -391,18 +219,18 @@
<g id="node17" class="node">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey</title>
<g id="a_node17"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey | defined in key_certificate.go:136">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M459.9315,-269C459.9315,-269 346.8555,-269 346.8555,-269 340.8555,-269 334.8555,-263 334.8555,-257 334.8555,-257 334.8555,-245 334.8555,-245 334.8555,-239 340.8555,-233 346.8555,-233 346.8555,-233 459.9315,-233 459.9315,-233 465.9315,-233 471.9315,-239 471.9315,-245 471.9315,-245 471.9315,-257 471.9315,-257 471.9315,-263 465.9315,-269 459.9315,-269"/>
<text text-anchor="middle" x="403.3935" y="-255.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
<text text-anchor="middle" x="403.3935" y="-238.4" font-family="Verdana" font-size="14.00" fill="#000000">ConstructPublicKey</text>
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M459.9315,-868C459.9315,-868 346.8555,-868 346.8555,-868 340.8555,-868 334.8555,-862 334.8555,-856 334.8555,-856 334.8555,-844 334.8555,-844 334.8555,-838 340.8555,-832 346.8555,-832 346.8555,-832 459.9315,-832 459.9315,-832 465.9315,-832 471.9315,-838 471.9315,-844 471.9315,-844 471.9315,-856 471.9315,-856 471.9315,-862 465.9315,-868 459.9315,-868"/>
<text text-anchor="middle" x="403.3935" y="-854.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
<text text-anchor="middle" x="403.3935" y="-837.4" font-family="Verdana" font-size="14.00" fill="#000000">ConstructPublicKey</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey -->
<g id="edge4" class="edge">
<g id="edge29" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey</title>
<g id="a_edge4"><a xlink:title="at keys_and_cert.go:170: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey]">
<path fill="none" stroke="#8b4513" d="M157.5182,-240.9947C187.1224,-225.0713 234.2559,-205.3238 276.843,-212 289.7568,-214.0244 292.3679,-217.0966 304.843,-221 314.2521,-223.9441 324.1786,-227.0113 333.9634,-230.0121"/>
<polygon fill="#8b4513" stroke="#8b4513" points="333.0901,-233.405 343.6765,-232.9838 335.138,-226.7113 333.0901,-233.405"/>
<g id="a_edge29"><a xlink:title="at keys_and_cert.go:170: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).ConstructPublicKey]">
<path fill="none" stroke="#8b4513" d="M145.2786,-693.2912C175.1374,-723.7533 239.3534,-784.9819 304.843,-820 311.2403,-823.4207 318.0845,-826.5106 325.0734,-829.2886"/>
<polygon fill="#8b4513" stroke="#8b4513" points="324.0727,-832.6513 334.665,-832.8853 326.5305,-826.097 324.0727,-832.6513"/>
</a>
</g>
</g>
@ -410,18 +238,18 @@
<g id="node18" class="node">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey</title>
<g id="a_node18"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey | defined in key_certificate.go:228">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M481.9945,-86C481.9945,-86 324.7925,-86 324.7925,-86 318.7925,-86 312.7925,-80 312.7925,-74 312.7925,-74 312.7925,-62 312.7925,-62 312.7925,-56 318.7925,-50 324.7925,-50 324.7925,-50 481.9945,-50 481.9945,-50 487.9945,-50 493.9945,-56 493.9945,-62 493.9945,-62 493.9945,-74 493.9945,-74 493.9945,-80 487.9945,-86 481.9945,-86"/>
<text text-anchor="middle" x="403.3935" y="-72.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
<text text-anchor="middle" x="403.3935" y="-55.4" font-family="Verdana" font-size="14.00" fill="#000000">ConstructSigningPublicKey</text>
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M481.9945,-929C481.9945,-929 324.7925,-929 324.7925,-929 318.7925,-929 312.7925,-923 312.7925,-917 312.7925,-917 312.7925,-905 312.7925,-905 312.7925,-899 318.7925,-893 324.7925,-893 324.7925,-893 481.9945,-893 481.9945,-893 487.9945,-893 493.9945,-899 493.9945,-905 493.9945,-905 493.9945,-917 493.9945,-917 493.9945,-923 487.9945,-929 481.9945,-929"/>
<text text-anchor="middle" x="403.3935" y="-915.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
<text text-anchor="middle" x="403.3935" y="-898.4" font-family="Verdana" font-size="14.00" fill="#000000">ConstructSigningPublicKey</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey -->
<g id="edge26" class="edge">
<g id="edge5" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey</title>
<g id="a_edge26"><a xlink:title="at keys_and_cert.go:184: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey]">
<path fill="none" stroke="#8b4513" d="M143.0709,-240.8944C171.5002,-208.023 236.1988,-138.302 304.843,-99 310.6994,-95.6469 316.9632,-92.6098 323.388,-89.8683"/>
<polygon fill="#8b4513" stroke="#8b4513" points="324.9077,-93.0299 332.8877,-86.0607 322.3034,-86.5324 324.9077,-93.0299"/>
<g id="a_edge5"><a xlink:title="at keys_and_cert.go:184: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).ConstructSigningPublicKey]">
<path fill="none" stroke="#8b4513" d="M138.4625,-693.1607C162.6348,-733.2019 226.0876,-829.588 304.843,-881 309.1779,-883.8298 313.7924,-886.4033 318.5678,-888.7421"/>
<polygon fill="#8b4513" stroke="#8b4513" points="317.3636,-892.0384 327.9186,-892.9564 320.2399,-885.6566 317.3636,-892.0384"/>
</a>
</g>
</g>
@ -429,18 +257,18 @@
<g id="node19" class="node">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType</title>
<g id="a_node19"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType | defined in key_certificate.go:126">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M447.2604,-147C447.2604,-147 359.5266,-147 359.5266,-147 353.5266,-147 347.5266,-141 347.5266,-135 347.5266,-135 347.5266,-123 347.5266,-123 347.5266,-117 353.5266,-111 359.5266,-111 359.5266,-111 447.2604,-111 447.2604,-111 453.2604,-111 459.2604,-117 459.2604,-123 459.2604,-123 459.2604,-135 459.2604,-135 459.2604,-141 453.2604,-147 447.2604,-147"/>
<text text-anchor="middle" x="403.3935" y="-133.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
<text text-anchor="middle" x="403.3935" y="-116.4" font-family="Verdana" font-size="14.00" fill="#000000">PublicKeyType</text>
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M447.2604,-746C447.2604,-746 359.5266,-746 359.5266,-746 353.5266,-746 347.5266,-740 347.5266,-734 347.5266,-734 347.5266,-722 347.5266,-722 347.5266,-716 353.5266,-710 359.5266,-710 359.5266,-710 447.2604,-710 447.2604,-710 453.2604,-710 459.2604,-716 459.2604,-722 459.2604,-722 459.2604,-734 459.2604,-734 459.2604,-740 453.2604,-746 447.2604,-746"/>
<text text-anchor="middle" x="403.3935" y="-732.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
<text text-anchor="middle" x="403.3935" y="-715.4" font-family="Verdana" font-size="14.00" fill="#000000">PublicKeyType</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType -->
<g id="edge20" class="edge">
<g id="edge9" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType</title>
<g id="a_edge20"><a xlink:title="at keys_and_cert.go:193: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType]">
<path fill="none" stroke="#8b4513" d="M156.1077,-240.8273C190.2665,-219.3772 250.0678,-183.6418 304.843,-160 315.287,-155.4922 326.6048,-151.3153 337.7225,-147.582"/>
<polygon fill="#8b4513" stroke="#8b4513" points="338.9939,-150.8488 347.414,-144.4182 336.8216,-144.1944 338.9939,-150.8488"/>
<g id="a_edge9"><a xlink:title="at keys_and_cert.go:193: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType]">
<path fill="none" stroke="#8b4513" d="M192.8557,-687.4931C236.389,-695.8688 293.5386,-706.8642 337.309,-715.2855"/>
<polygon fill="#8b4513" stroke="#8b4513" points="336.8,-718.7517 347.2812,-717.2042 338.1226,-711.8778 336.8,-718.7517"/>
</a>
</g>
</g>
@ -448,36 +276,208 @@
<g id="node20" class="node">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType</title>
<g id="a_node20"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType | defined in key_certificate.go:117">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M469.3247,-208C469.3247,-208 337.4623,-208 337.4623,-208 331.4623,-208 325.4623,-202 325.4623,-196 325.4623,-196 325.4623,-184 325.4623,-184 325.4623,-178 331.4623,-172 337.4623,-172 337.4623,-172 469.3247,-172 469.3247,-172 475.3247,-172 481.3247,-178 481.3247,-184 481.3247,-184 481.3247,-196 481.3247,-196 481.3247,-202 475.3247,-208 469.3247,-208"/>
<text text-anchor="middle" x="403.3935" y="-194.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
<text text-anchor="middle" x="403.3935" y="-177.4" font-family="Verdana" font-size="14.00" fill="#000000">SigningPublicKeyType</text>
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M469.3247,-807C469.3247,-807 337.4623,-807 337.4623,-807 331.4623,-807 325.4623,-801 325.4623,-795 325.4623,-795 325.4623,-783 325.4623,-783 325.4623,-777 331.4623,-771 337.4623,-771 337.4623,-771 469.3247,-771 469.3247,-771 475.3247,-771 481.3247,-777 481.3247,-783 481.3247,-783 481.3247,-795 481.3247,-795 481.3247,-801 475.3247,-807 469.3247,-807"/>
<text text-anchor="middle" x="403.3935" y="-793.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
<text text-anchor="middle" x="403.3935" y="-776.4" font-family="Verdana" font-size="14.00" fill="#000000">SigningPublicKeyType</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType -->
<g id="edge24" class="edge">
<g id="edge1" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType</title>
<g id="a_edge24"><a xlink:title="at keys_and_cert.go:194: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType]">
<path fill="none" stroke="#8b4513" d="M170.5306,-240.9176C199.6846,-229.2493 239.4923,-214.6809 275.843,-206 288.557,-202.9638 302.13,-200.4793 315.5034,-198.4532"/>
<polygon fill="#8b4513" stroke="#8b4513" points="316.2733,-201.8786 325.6736,-196.9915 315.2774,-194.9497 316.2733,-201.8786"/>
<g id="a_edge1"><a xlink:title="at keys_and_cert.go:194: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType]">
<path fill="none" stroke="#8b4513" d="M162.1682,-693.1217C197.3304,-711.2817 253.9512,-739.2968 304.843,-759 312.8408,-762.0964 321.3002,-765.0854 329.7677,-767.8986"/>
<polygon fill="#8b4513" stroke="#8b4513" points="328.715,-771.2366 339.3071,-770.9965 330.8771,-764.5789 328.715,-771.2366"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.constructSigningPublicKey -->
<g id="node4" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.constructSigningPublicKey</title>
<g id="a_node4"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.constructSigningPublicKey | defined in keys_and_cert.go:285&#10;at keys_and_cert.go:294: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:289: calling [github.com/samber/oops.Errorf]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M204.9005,-174C204.9005,-174 50.9425,-174 50.9425,-174 44.9425,-174 38.9425,-168 38.9425,-162 38.9425,-162 38.9425,-150 38.9425,-150 38.9425,-144 44.9425,-138 50.9425,-138 50.9425,-138 204.9005,-138 204.9005,-138 210.9005,-138 216.9005,-144 216.9005,-150 216.9005,-150 216.9005,-162 216.9005,-162 216.9005,-168 210.9005,-174 204.9005,-174"/>
<text text-anchor="middle" x="127.9215" y="-151.8" font-family="Verdana" font-size="14.00" fill="#000000">constructSigningPublicKey</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.constructSigningPublicKey&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge30" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.constructSigningPublicKey&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge30"><a xlink:title="at keys_and_cert.go:294: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:289: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M193.0243,-137.9766C208.3786,-133.7234 224.6885,-129.2035 239.843,-125 255.8446,-120.5615 259.6133,-118.5143 275.843,-115 305.2057,-108.642 338.7862,-103.4592 364.1189,-99.9639"/>
<polygon fill="#8b4513" stroke="#8b4513" points="364.6464,-103.4246 374.0875,-98.6167 363.7088,-96.4876 364.6464,-103.4246"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.constructPublicKey -->
<g id="node9" class="node">
<g id="node5" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.constructPublicKey</title>
<g id="a_node9"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.constructPublicKey | defined in keys_and_cert.go:270&#10;at keys_and_cert.go:281: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:274: calling [github.com/samber/oops.Errorf]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M183.3373,-408C183.3373,-408 72.5057,-408 72.5057,-408 66.5057,-408 60.5057,-402 60.5057,-396 60.5057,-396 60.5057,-384 60.5057,-384 60.5057,-378 66.5057,-372 72.5057,-372 72.5057,-372 183.3373,-372 183.3373,-372 189.3373,-372 195.3373,-378 195.3373,-384 195.3373,-384 195.3373,-396 195.3373,-396 195.3373,-402 189.3373,-408 183.3373,-408"/>
<text text-anchor="middle" x="127.9215" y="-385.8" font-family="Verdana" font-size="14.00" fill="#000000">constructPublicKey</text>
<g id="a_node5"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.constructPublicKey | defined in keys_and_cert.go:270&#10;at keys_and_cert.go:281: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:274: calling [github.com/samber/oops.Errorf]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M183.3373,-113C183.3373,-113 72.5057,-113 72.5057,-113 66.5057,-113 60.5057,-107 60.5057,-101 60.5057,-101 60.5057,-89 60.5057,-89 60.5057,-83 66.5057,-77 72.5057,-77 72.5057,-77 183.3373,-77 183.3373,-77 189.3373,-77 195.3373,-83 195.3373,-89 195.3373,-89 195.3373,-101 195.3373,-101 195.3373,-107 189.3373,-113 183.3373,-113"/>
<text text-anchor="middle" x="127.9215" y="-90.8" font-family="Verdana" font-size="14.00" fill="#000000">constructPublicKey</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.constructPublicKey&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge13" class="edge">
<g id="edge25" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.constructPublicKey&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge13"><a xlink:title="at keys_and_cert.go:281: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:274: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M195.3095,-400.7636C248.2482,-409.2193 320.1393,-420.7022 364.0707,-427.7191"/>
<polygon fill="#8b4513" stroke="#8b4513" points="363.6463,-431.1956 374.0732,-429.3168 364.7505,-424.2833 363.6463,-431.1956"/>
<g id="a_edge25"><a xlink:title="at keys_and_cert.go:281: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:274: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M195.3627,-89.6985C220.8813,-88.2528 250.1937,-87.2635 276.843,-88 306.0974,-88.8085 339.1122,-90.6663 364.084,-92.2649"/>
<polygon fill="#8b4513" stroke="#8b4513" points="364.0523,-95.7702 374.2594,-92.9303 364.5091,-88.7851 364.0523,-95.7702"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.init -->
<g id="node6" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.init</title>
<g id="a_node6"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.init | defined in .:0&#10;at keys_and_cert.go:14: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M142.9215,-52C142.9215,-52 112.9215,-52 112.9215,-52 106.9215,-52 100.9215,-46 100.9215,-40 100.9215,-40 100.9215,-28 100.9215,-28 100.9215,-22 106.9215,-16 112.9215,-16 112.9215,-16 142.9215,-16 142.9215,-16 148.9215,-16 154.9215,-22 154.9215,-28 154.9215,-28 154.9215,-40 154.9215,-40 154.9215,-46 148.9215,-52 142.9215,-52"/>
<text text-anchor="middle" x="127.9215" y="-29.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="node7" class="node">
<title>github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_node7"><a xlink:title="github.com/go&#45;i2p/logger.GetGoI2PLogger | defined in log.go:120">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M452.083,-52C452.083,-52 354.704,-52 354.704,-52 348.704,-52 342.704,-46 342.704,-40 342.704,-40 342.704,-28 342.704,-28 342.704,-22 348.704,-16 354.704,-16 354.704,-16 452.083,-16 452.083,-16 458.083,-16 464.083,-22 464.083,-28 464.083,-28 464.083,-40 464.083,-40 464.083,-46 458.083,-52 452.083,-52"/>
<text text-anchor="middle" x="403.3935" y="-38.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="403.3935" y="-21.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="edge22" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_edge22"><a xlink:title="at keys_and_cert.go:14: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="none" stroke="#8b4513" d="M155.0887,-34C195.9363,-34 274.546,-34 332.4167,-34"/>
<polygon fill="#8b4513" stroke="#8b4513" points="332.6037,-37.5001 342.6036,-34 332.6036,-30.5001 332.6037,-37.5001"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519 -->
<g id="node8" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519</title>
<g id="a_node8"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519 | defined in keys_and_cert.go:202&#10;at keys_and_cert.go:203: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:260: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:205: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at keys_and_cert.go:265: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at keys_and_cert.go:218: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:229: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:245: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:219: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:230: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:246: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:256: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:219: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:230: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:246: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:256: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:254: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.NewKeyCertificate]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M227.7646,-235C227.7646,-235 28.0784,-235 28.0784,-235 22.0784,-235 16.0784,-229 16.0784,-223 16.0784,-223 16.0784,-211 16.0784,-211 16.0784,-205 22.0784,-199 28.0784,-199 28.0784,-199 227.7646,-199 227.7646,-199 233.7646,-199 239.7646,-205 239.7646,-211 239.7646,-211 239.7646,-223 239.7646,-223 239.7646,-229 233.7646,-235 227.7646,-235"/>
<text text-anchor="middle" x="127.9215" y="-212.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadKeysAndCertElgAndEd25519</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge10" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge10"><a xlink:title="at keys_and_cert.go:218: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:229: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:245: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M212.5176,-198.9808C222.0613,-195.3874 231.3831,-191.1025 239.843,-186 275.9199,-164.2407 268.2275,-137.8402 304.843,-117 322.8401,-106.7567 345.2113,-101.2823 364.0882,-98.3568"/>
<polygon fill="#8b4513" stroke="#8b4513" points="364.7318,-101.8015 374.1658,-96.9797 363.784,-94.8659 364.7318,-101.8015"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.NewKeyCertificate -->
<g id="edge18" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.NewKeyCertificate</title>
<g id="a_edge18"><a xlink:title="at keys_and_cert.go:254: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.NewKeyCertificate]">
<path fill="none" stroke="#8b4513" d="M152.985,-235.2962C177.7252,-254.4015 215.3117,-286.3687 239.843,-321 263.6588,-354.6212 262.657,-367.3175 276.843,-406 291.7054,-446.5268 274.2247,-468.5726 304.843,-499 311.3462,-505.4626 319.2114,-510.4991 327.6295,-514.4217"/>
<polygon fill="#8b4513" stroke="#8b4513" points="326.3633,-517.6853 336.9427,-518.2557 329.028,-511.2124 326.3633,-517.6853"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge2" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge2"><a xlink:title="at keys_and_cert.go:203: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:260: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M197.2721,-198.9469C222.3516,-194.6033 250.8809,-192.1862 276.843,-196 284.4717,-197.1206 318.9934,-207.5456 350.0558,-217.1927"/>
<polygon fill="#8b4513" stroke="#8b4513" points="349.3926,-220.6519 359.981,-220.2847 351.4747,-213.9687 349.3926,-220.6519"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="edge12" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_edge12"><a xlink:title="at keys_and_cert.go:219: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:230: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:246: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:256: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M222.8962,-198.9676C240.4749,-195.8282 258.6953,-192.7061 275.843,-190 304.9989,-185.3989 338.0353,-181.0188 363.1803,-177.8572"/>
<polygon fill="#8b4513" stroke="#8b4513" points="363.9484,-181.2887 373.4393,-176.5798 363.0834,-174.3424 363.9484,-181.2887"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError -->
<g id="edge11" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError</title>
<g id="a_edge11"><a xlink:title="at keys_and_cert.go:219: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:230: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:246: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at keys_and_cert.go:256: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="none" stroke="#8b4513" d="M240.0357,-210.2228C252.9491,-212.6803 265.5262,-216.73 276.843,-223 296.1446,-233.694 287.12,-250.8543 304.843,-264 318.8008,-274.353 336.3101,-281.3098 352.6832,-285.9582"/>
<polygon fill="#8b4513" stroke="#8b4513" points="352.1297,-289.4308 362.6891,-288.564 353.8939,-282.6567 352.1297,-289.4308"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge6" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCertElgAndEd25519&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge6"><a xlink:title="at keys_and_cert.go:205: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at keys_and_cert.go:265: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M240.0563,-228.7418C253.4889,-233.7787 266.1921,-240.6576 276.843,-250 304.2186,-274.0125 281.1301,-299.3644 304.843,-327 320.2372,-344.9408 343.1376,-357.996 362.9895,-366.7711"/>
<polygon fill="#8b4513" stroke="#8b4513" points="361.8684,-370.0962 372.4438,-370.7377 364.5766,-363.6413 361.8684,-370.0962"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert -->
<g id="node9" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert</title>
<g id="a_node9"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert | defined in keys_and_cert.go:300&#10;at keys_and_cert.go:315: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SignatureSize]&#10;at keys_and_cert.go:310: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:324: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:335: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:346: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:314: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize]&#10;at keys_and_cert.go:306: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at keys_and_cert.go:309: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:323: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:334: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:345: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:320: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:331: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:342: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M179.8247,-369C179.8247,-369 76.0183,-369 76.0183,-369 70.0183,-369 64.0183,-363 64.0183,-357 64.0183,-357 64.0183,-345 64.0183,-345 64.0183,-339 70.0183,-333 76.0183,-333 76.0183,-333 179.8247,-333 179.8247,-333 185.8247,-333 191.8247,-339 191.8247,-345 191.8247,-345 191.8247,-357 191.8247,-357 191.8247,-363 185.8247,-369 179.8247,-369"/>
<text text-anchor="middle" x="127.9215" y="-346.8" font-family="Verdana" font-size="14.00" fill="#000000">NewKeysAndCert</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge7" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge7"><a xlink:title="at keys_and_cert.go:310: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:324: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:335: calling [github.com/samber/oops.Errorf]&#10;at keys_and_cert.go:346: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M152.1441,-332.7848C176.5748,-313.5026 214.2421,-281.1803 239.843,-247 259.2056,-221.1485 279.3945,-136.8893 304.843,-117 321.5858,-103.9146 344.5681,-98.2886 364.1275,-95.9917"/>
<polygon fill="#8b4513" stroke="#8b4513" points="364.6506,-99.4584 374.2856,-95.052 364.0057,-92.4881 364.6506,-99.4584"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge28" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge28"><a xlink:title="at keys_and_cert.go:320: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:331: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:342: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M191.7116,-348.8837C220.192,-345.1015 252.6964,-336.5574 276.843,-318 298.2784,-301.5262 284.0613,-281.2911 304.843,-264 317.7082,-253.2957 334.3362,-246.4085 350.257,-241.9781"/>
<polygon fill="#8b4513" stroke="#8b4513" points="351.1905,-245.3525 360.0386,-239.5249 349.4876,-238.5627 351.1905,-245.3525"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="edge27" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_edge27"><a xlink:title="at keys_and_cert.go:309: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:323: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:334: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at keys_and_cert.go:345: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M191.9642,-338.4004C221.3678,-329.6201 254.5678,-315.0105 276.843,-291 304.7572,-260.9111 275.6395,-231.8392 304.843,-203 320.3392,-187.6971 343.392,-180.1646 363.306,-176.4727"/>
<polygon fill="#8b4513" stroke="#8b4513" points="364.0507,-179.8983 373.377,-174.8713 362.9514,-172.9852 364.0507,-179.8983"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge26" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge26"><a xlink:title="at keys_and_cert.go:306: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M191.8127,-357.958C244.4538,-363.6908 317.5263,-371.6487 362.5692,-376.5541"/>
<polygon fill="#8b4513" stroke="#8b4513" points="362.2418,-380.039 372.562,-377.6423 362.9997,-373.0802 362.2418,-380.039"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize -->
<g id="edge13" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize</title>
<g id="a_edge13"><a xlink:title="at keys_and_cert.go:314: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize]">
<path fill="none" stroke="#8b4513" d="M177.0131,-369.0656C199.059,-379.4364 223.6889,-394.5297 239.843,-415 303.5319,-495.7057 232.5349,-563.9164 304.843,-637 314.3655,-646.6246 326.8741,-653.1804 339.77,-657.6406"/>
<polygon fill="#8b4513" stroke="#8b4513" points="339.0779,-661.0887 349.664,-660.6591 341.1205,-654.3933 339.0779,-661.0887"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SignatureSize -->
<g id="edge3" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SignatureSize</title>
<g id="a_edge3"><a xlink:title="at keys_and_cert.go:315: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SignatureSize]">
<path fill="none" stroke="#8b4513" d="M191.6882,-362.1355C221.9523,-370.7126 255.9784,-385.7562 276.843,-412 325.0422,-472.6256 251.6954,-527.6622 304.843,-584 314.0457,-593.7551 326.5488,-599.6446 339.5579,-603.1076"/>
<polygon fill="#8b4513" stroke="#8b4513" points="339.04,-606.5773 349.5584,-605.3067 340.5435,-599.7406 339.04,-606.5773"/>
</a>
</g>
</g>
@ -485,45 +485,45 @@
<g id="node10" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes</title>
<g id="a_node10"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes | defined in certificate.go:100">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M431.3501,-885C431.3501,-885 375.4369,-885 375.4369,-885 369.4369,-885 363.4369,-879 363.4369,-873 363.4369,-873 363.4369,-861 363.4369,-861 363.4369,-855 369.4369,-849 375.4369,-849 375.4369,-849 431.3501,-849 431.3501,-849 437.3501,-849 443.3501,-855 443.3501,-861 443.3501,-861 443.3501,-873 443.3501,-873 443.3501,-879 437.3501,-885 431.3501,-885"/>
<text text-anchor="middle" x="403.3935" y="-871.2" font-family="Verdana" font-size="14.00" fill="#000000">certificate</text>
<text text-anchor="middle" x="403.3935" y="-854.4" font-family="Verdana" font-size="14.00" fill="#000000">Bytes</text>
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M431.3501,-485C431.3501,-485 375.4369,-485 375.4369,-485 369.4369,-485 363.4369,-479 363.4369,-473 363.4369,-473 363.4369,-461 363.4369,-461 363.4369,-455 369.4369,-449 375.4369,-449 375.4369,-449 431.3501,-449 431.3501,-449 437.3501,-449 443.3501,-455 443.3501,-461 443.3501,-461 443.3501,-473 443.3501,-473 443.3501,-479 437.3501,-485 431.3501,-485"/>
<text text-anchor="middle" x="403.3935" y="-471.2" font-family="Verdana" font-size="14.00" fill="#000000">certificate</text>
<text text-anchor="middle" x="403.3935" y="-454.4" font-family="Verdana" font-size="14.00" fill="#000000">Bytes</text>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Bytes -->
<g id="node21" class="node">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Bytes</title>
<g id="a_node21"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Bytes | defined in keys_and_cert.go:87&#10;at keys_and_cert.go:113: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:121: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at keys_and_cert.go:109: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes]&#10;at keys_and_cert.go:110: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M143.808,-858C143.808,-858 112.035,-858 112.035,-858 106.035,-858 100.035,-852 100.035,-846 100.035,-846 100.035,-834 100.035,-834 100.035,-828 106.035,-822 112.035,-822 112.035,-822 143.808,-822 143.808,-822 149.808,-822 155.808,-828 155.808,-834 155.808,-834 155.808,-846 155.808,-846 155.808,-852 149.808,-858 143.808,-858"/>
<text text-anchor="middle" x="127.9215" y="-835.8" font-family="Verdana" font-size="14.00" fill="#000000">Bytes</text>
<g id="a_node21"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Bytes | defined in keys_and_cert.go:87&#10;at keys_and_cert.go:113: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at keys_and_cert.go:109: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes]&#10;at keys_and_cert.go:110: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes]&#10;at keys_and_cert.go:121: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M143.808,-491C143.808,-491 112.035,-491 112.035,-491 106.035,-491 100.035,-485 100.035,-479 100.035,-479 100.035,-467 100.035,-467 100.035,-461 106.035,-455 112.035,-455 112.035,-455 143.808,-455 143.808,-455 149.808,-455 155.808,-461 155.808,-467 155.808,-467 155.808,-479 155.808,-479 155.808,-485 149.808,-491 143.808,-491"/>
<text text-anchor="middle" x="127.9215" y="-468.8" font-family="Verdana" font-size="14.00" fill="#000000">Bytes</text>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Bytes&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes -->
<g id="edge30" class="edge">
<g id="edge23" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Bytes&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes</title>
<g id="a_edge30"><a xlink:title="at keys_and_cert.go:109: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes]&#10;at keys_and_cert.go:110: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes]">
<path fill="none" stroke="#8b4513" d="M155.8512,-842.7375C202.046,-847.2652 295.0028,-856.3762 352.9328,-862.0542"/>
<polygon fill="#8b4513" stroke="#8b4513" points="352.6772,-865.5458 362.9709,-863.038 353.3601,-858.5792 352.6772,-865.5458"/>
<g id="a_edge23"><a xlink:title="at keys_and_cert.go:109: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes]&#10;at keys_and_cert.go:110: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.Certificate).Bytes]">
<path fill="none" stroke="#8b4513" d="M155.9212,-475.9548C185.8556,-478.7304 234.709,-482.1584 276.843,-480 302.1093,-478.7057 330.1021,-475.9668 353.3226,-473.3353"/>
<polygon fill="#8b4513" stroke="#8b4513" points="353.7632,-476.8078 363.2935,-472.1792 352.9568,-469.8544 353.7632,-476.8078"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Bytes&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge15" class="edge">
<g id="edge17" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Bytes&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge15"><a xlink:title="at keys_and_cert.go:113: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M156.1148,-838.9948C179.7107,-837.1243 213.6306,-831.9728 239.843,-818 260.3653,-807.0604 263.3763,-799.9602 276.843,-781 293.4183,-757.663 282.9301,-741.4169 304.843,-723 317.5848,-712.291 334.1796,-705.6698 350.1079,-701.5788"/>
<polygon fill="#8b4513" stroke="#8b4513" points="350.9283,-704.9817 359.8991,-699.3446 349.371,-698.1571 350.9283,-704.9817"/>
<g id="a_edge17"><a xlink:title="at keys_and_cert.go:113: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M155.98,-475.87C190.0003,-477.6345 246.5359,-474.7391 276.843,-441 330.0662,-381.7497 252.5607,-324.0821 304.843,-264 316.3746,-250.7481 333.5651,-243.2488 350.3744,-239.0387"/>
<polygon fill="#8b4513" stroke="#8b4513" points="351.1457,-242.4529 360.1818,-236.9213 349.6684,-235.6106 351.1457,-242.4529"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Bytes&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge16" class="edge">
<g id="edge24" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.KeysAndCert).Bytes&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge16"><a xlink:title="at keys_and_cert.go:121: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M156.0364,-844.7199C186.9223,-848.6413 237.3801,-851.2662 276.843,-835 292.5437,-828.5283 290.0435,-817.3288 304.843,-809 322.6299,-798.9899 344.272,-792.3279 362.7394,-788.0238"/>
<polygon fill="#8b4513" stroke="#8b4513" points="363.6024,-791.4179 372.6278,-785.8688 362.1118,-784.5785 363.6024,-791.4179"/>
<g id="a_edge24"><a xlink:title="at keys_and_cert.go:121: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M155.8096,-475.9198C187.6346,-477.8339 240.0275,-476.5344 276.843,-453 296.3729,-440.5154 286.2571,-422.8509 304.843,-409 321.526,-396.5672 343.5395,-389.6503 362.5288,-385.8042"/>
<polygon fill="#8b4513" stroke="#8b4513" points="363.2084,-389.2382 372.4256,-384.014 361.9623,-382.35 363.2084,-389.2382"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/common/lease"
![lease.svg](lease)
![lease.svg](lease.svg)
Package lease implements the I2P lease common data structure

View File

@ -54,31 +54,58 @@
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease -->
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.init -->
<g id="node1" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease</title>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease | defined in lease.go:86&#10;at lease.go:90: calling [github.com/samber/oops.Errorf]&#10;at lease.go:94: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at lease.go:87: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at lease.go:105: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at lease.go:103: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Date).Time]&#10;at lease.go:87: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at lease.go:91: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at lease.go:101: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at lease.go:102: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).TunnelID]&#10;at lease.go:103: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).Date]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M325.7915,-369C325.7915,-369 263.9759,-369 263.9759,-369 257.9759,-369 251.9759,-363 251.9759,-357 251.9759,-357 251.9759,-345 251.9759,-345 251.9759,-339 257.9759,-333 263.9759,-333 263.9759,-333 325.7915,-333 325.7915,-333 331.7915,-333 337.7915,-339 337.7915,-345 337.7915,-345 337.7915,-357 337.7915,-357 337.7915,-363 331.7915,-369 325.7915,-369"/>
<text text-anchor="middle" x="294.8837" y="-346.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadLease</text>
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.init</title>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.init | defined in .:0&#10;at lease.go:59: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M103.6445,-648C103.6445,-648 73.6445,-648 73.6445,-648 67.6445,-648 61.6445,-642 61.6445,-636 61.6445,-636 61.6445,-624 61.6445,-624 61.6445,-618 67.6445,-612 73.6445,-612 73.6445,-612 103.6445,-612 103.6445,-612 109.6445,-612 115.6445,-618 115.6445,-624 115.6445,-624 115.6445,-636 115.6445,-636 115.6445,-642 109.6445,-648 103.6445,-648"/>
<text text-anchor="middle" x="88.6445" y="-625.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
</a>
</g>
</g>
<!-- github.com/samber/oops.Errorf -->
<!-- github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="node2" class="node">
<title>github.com/samber/oops.Errorf</title>
<g id="a_node2"><a xlink:title="github.com/samber/oops.Errorf | defined in oops.go:34">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M488.7831,-330C488.7831,-330 454.3925,-330 454.3925,-330 448.3925,-330 442.3925,-324 442.3925,-318 442.3925,-318 442.3925,-306 442.3925,-306 442.3925,-300 448.3925,-294 454.3925,-294 454.3925,-294 488.7831,-294 488.7831,-294 494.7831,-294 500.7831,-300 500.7831,-306 500.7831,-306 500.7831,-318 500.7831,-318 500.7831,-324 494.7831,-330 488.7831,-330"/>
<text text-anchor="middle" x="471.5878" y="-316.2" font-family="Verdana" font-size="14.00" fill="#000000">oops</text>
<text text-anchor="middle" x="471.5878" y="-299.4" font-family="Verdana" font-size="14.00" fill="#000000">Errorf</text>
<title>github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_node2"><a xlink:title="github.com/go&#45;i2p/logger.GetGoI2PLogger | defined in log.go:120">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M343.5732,-648C343.5732,-648 246.1942,-648 246.1942,-648 240.1942,-648 234.1942,-642 234.1942,-636 234.1942,-636 234.1942,-624 234.1942,-624 234.1942,-618 240.1942,-612 246.1942,-612 246.1942,-612 343.5732,-612 343.5732,-612 349.5732,-612 355.5732,-618 355.5732,-624 355.5732,-624 355.5732,-636 355.5732,-636 355.5732,-642 349.5732,-648 343.5732,-648"/>
<text text-anchor="middle" x="294.8837" y="-634.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="294.8837" y="-617.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge1" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge1"><a xlink:title="at lease.go:90: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M337.6588,-341.5592C366.587,-335.1745 404.4919,-326.8086 432.5907,-320.607"/>
<polygon fill="#8b4513" stroke="#8b4513" points="433.4538,-324.0008 442.4644,-318.4278 431.9451,-317.1653 433.4538,-324.0008"/>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="edge14" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_edge14"><a xlink:title="at lease.go:59: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="none" stroke="#8b4513" d="M116.0315,-630C143.3741,-630 186.5488,-630 223.628,-630"/>
<polygon fill="#8b4513" stroke="#8b4513" points="223.9065,-633.5001 233.9064,-630 223.9064,-626.5001 223.9065,-633.5001"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes -->
<g id="node3" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes</title>
<g id="a_node3"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes | defined in lease.go:140&#10;at lease.go:146: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at lease.go:146: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at lease.go:153: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).TunnelID]&#10;at lease.go:154: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Date).Time]&#10;at lease.go:141: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at lease.go:154: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).Date]&#10;at lease.go:152: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at lease.go:144: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease]&#10;at lease.go:141: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at lease.go:156: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M149.4338,-370C149.4338,-370 27.8552,-370 27.8552,-370 21.8552,-370 15.8552,-364 15.8552,-358 15.8552,-358 15.8552,-346 15.8552,-346 15.8552,-340 21.8552,-334 27.8552,-334 27.8552,-334 149.4338,-334 149.4338,-334 155.4338,-334 161.4338,-340 161.4338,-346 161.4338,-346 161.4338,-358 161.4338,-358 161.4338,-364 155.4338,-370 149.4338,-370"/>
<text text-anchor="middle" x="88.6445" y="-347.8" font-family="Verdana" font-size="14.00" fill="#000000">NewLeaseFromBytes</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease -->
<g id="node4" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease</title>
<g id="a_node4"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease | defined in lease.go:86&#10;at lease.go:94: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at lease.go:102: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).TunnelID]&#10;at lease.go:91: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at lease.go:101: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at lease.go:87: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at lease.go:105: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at lease.go:103: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).Date]&#10;at lease.go:90: calling [github.com/samber/oops.Errorf]&#10;at lease.go:87: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at lease.go:103: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Date).Time]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M325.7915,-370C325.7915,-370 263.9759,-370 263.9759,-370 257.9759,-370 251.9759,-364 251.9759,-358 251.9759,-358 251.9759,-346 251.9759,-346 251.9759,-340 257.9759,-334 263.9759,-334 263.9759,-334 325.7915,-334 325.7915,-334 331.7915,-334 337.7915,-340 337.7915,-346 337.7915,-346 337.7915,-358 337.7915,-358 337.7915,-364 331.7915,-370 325.7915,-370"/>
<text text-anchor="middle" x="294.8837" y="-347.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadLease</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease -->
<g id="edge16" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease</title>
<g id="a_edge16"><a xlink:title="at lease.go:144: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease]">
<path fill="none" stroke="#000000" d="M161.3567,-352C187.8418,-352 217.2658,-352 241.7376,-352"/>
<polygon fill="#000000" stroke="#000000" points="241.8993,-355.5001 251.8993,-352 241.8992,-348.5001 241.8993,-355.5001"/>
</a>
</g>
</g>
@ -92,12 +119,12 @@
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField -->
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField -->
<g id="edge9" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField</title>
<g id="a_edge9"><a xlink:title="at lease.go:87: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="none" stroke="#8b4513" d="M309.8488,-332.7509C332.1793,-306.2005 376.3404,-256.2513 420.4784,-221 423.5826,-218.5208 426.9013,-216.0898 430.3009,-213.7482"/>
<polygon fill="#8b4513" stroke="#8b4513" points="432.4077,-216.5518 438.8421,-208.1346 428.563,-210.7021 432.4077,-216.5518"/>
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField</title>
<g id="a_edge9"><a xlink:title="at lease.go:141: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="none" stroke="#8b4513" d="M100.1767,-333.7646C121.8709,-301.3 172.2078,-234.2444 234.289,-206 294.1148,-178.7817 371.2873,-179.2255 421.1046,-183.4546"/>
<polygon fill="#8b4513" stroke="#8b4513" points="421.0219,-186.962 431.3037,-184.4059 421.672,-179.9923 421.0219,-186.962"/>
</a>
</g>
</g>
@ -111,12 +138,12 @@
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge10" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge10"><a xlink:title="at lease.go:91: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at lease.go:101: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M308.497,-332.686C321.0309,-315.6433 339.9741,-289.424 355.4784,-266 385.9807,-219.9171 381.3066,-198.982 420.4784,-160 422.9438,-157.5465 425.6397,-155.2041 428.4635,-152.9858"/>
<polygon fill="#8b4513" stroke="#8b4513" points="430.6048,-155.7569 436.6748,-147.0732 426.5145,-150.0763 430.6048,-155.7569"/>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge13" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge13"><a xlink:title="at lease.go:152: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M97.8504,-333.963C117.4971,-297.4537 167.2644,-214.8924 234.289,-175 290.9662,-141.2663 367.4961,-131.6152 418.1376,-129.1911"/>
<polygon fill="#8b4513" stroke="#8b4513" points="418.3687,-132.6848 428.2207,-128.7875 418.0887,-125.6904 418.3687,-132.6848"/>
</a>
</g>
</g>
@ -130,131 +157,12 @@
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="edge2" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_edge2"><a xlink:title="at lease.go:94: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M321.6373,-332.7541C346.6075,-316.1216 385.2102,-291.411 420.4784,-273 424.2839,-271.0134 428.3082,-269.0537 432.3608,-267.1712"/>
<polygon fill="#8b4513" stroke="#8b4513" points="434.0891,-270.2319 441.7782,-262.943 431.2219,-263.846 434.0891,-270.2319"/>
</a>
</g>
</g>
<!-- (*github.com/sirupsen/logrus.Logger).Debug -->
<g id="node11" class="node">
<title>(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_node11"><a xlink:title="(*github.com/sirupsen/logrus.Logger).Debug | defined in logger.go:221">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M490.4098,-408C490.4098,-408 452.7658,-408 452.7658,-408 446.7658,-408 440.7658,-402 440.7658,-396 440.7658,-396 440.7658,-384 440.7658,-384 440.7658,-378 446.7658,-372 452.7658,-372 452.7658,-372 490.4098,-372 490.4098,-372 496.4098,-372 502.4098,-378 502.4098,-384 502.4098,-384 502.4098,-396 502.4098,-396 502.4098,-402 496.4098,-408 490.4098,-408"/>
<text text-anchor="middle" x="471.5878" y="-394.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
<text text-anchor="middle" x="471.5878" y="-377.4" font-family="Verdana" font-size="14.00" fill="#000000">Debug</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge5" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge5"><a xlink:title="at lease.go:87: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at lease.go:105: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M337.6588,-360.4408C366.0412,-366.705 403.0647,-374.8764 430.9898,-381.0397"/>
<polygon fill="#8b4513" stroke="#8b4513" points="430.3142,-384.4747 440.8335,-383.2123 431.8229,-377.6393 430.3142,-384.4747"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Date).Time -->
<g id="node12" class="node">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Date).Time</title>
<g id="a_node12"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Date).Time | defined in date.go:47">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M486.5878,-494C486.5878,-494 456.5878,-494 456.5878,-494 450.5878,-494 444.5878,-488 444.5878,-482 444.5878,-482 444.5878,-470 444.5878,-470 444.5878,-464 450.5878,-458 456.5878,-458 456.5878,-458 486.5878,-458 486.5878,-458 492.5878,-458 498.5878,-464 498.5878,-470 498.5878,-470 498.5878,-482 498.5878,-482 498.5878,-488 492.5878,-494 486.5878,-494"/>
<text text-anchor="middle" x="471.5878" y="-480.2" font-family="Verdana" font-size="14.00" fill="#000000">data</text>
<text text-anchor="middle" x="471.5878" y="-463.4" font-family="Verdana" font-size="14.00" fill="#000000">Time</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Date).Time -->
<g id="edge6" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Date).Time</title>
<g id="a_edge6"><a xlink:title="at lease.go:103: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Date).Time]">
<path fill="none" stroke="#8b4513" d="M320.578,-369.1761C351.4625,-391.0237 403.3925,-427.7588 437.5774,-451.9411"/>
<polygon fill="#8b4513" stroke="#8b4513" points="435.6773,-454.8842 445.8625,-457.802 439.7199,-449.1695 435.6773,-454.8842"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).TunnelID -->
<g id="node14" class="node">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).TunnelID</title>
<g id="a_node14"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).TunnelID | defined in lease.go:70&#10;at lease.go:73: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M499.014,-580C499.014,-580 444.1616,-580 444.1616,-580 438.1616,-580 432.1616,-574 432.1616,-568 432.1616,-568 432.1616,-556 432.1616,-556 432.1616,-550 438.1616,-544 444.1616,-544 444.1616,-544 499.014,-544 499.014,-544 505.014,-544 511.014,-550 511.014,-556 511.014,-556 511.014,-568 511.014,-568 511.014,-574 505.014,-580 499.014,-580"/>
<text text-anchor="middle" x="471.5878" y="-557.8" font-family="Verdana" font-size="14.00" fill="#000000">TunnelID</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).TunnelID -->
<g id="edge17" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).TunnelID</title>
<g id="a_edge17"><a xlink:title="at lease.go:102: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).TunnelID]">
<path fill="none" stroke="#000000" d="M308.7228,-369.2915C331.3699,-398.9938 378.078,-459.2955 420.4784,-508 428.7382,-517.4879 438.1159,-527.5775 446.5634,-536.4358"/>
<polygon fill="#000000" stroke="#000000" points="444.2431,-539.0726 453.696,-543.8574 449.2901,-534.222 444.2431,-539.0726"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).Date -->
<g id="node15" class="node">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).Date</title>
<g id="a_node15"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).Date | defined in lease.go:78">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M486.5878,-641C486.5878,-641 456.5878,-641 456.5878,-641 450.5878,-641 444.5878,-635 444.5878,-629 444.5878,-629 444.5878,-617 444.5878,-617 444.5878,-611 450.5878,-605 456.5878,-605 456.5878,-605 486.5878,-605 486.5878,-605 492.5878,-605 498.5878,-611 498.5878,-617 498.5878,-617 498.5878,-629 498.5878,-629 498.5878,-635 492.5878,-641 486.5878,-641"/>
<text text-anchor="middle" x="471.5878" y="-618.8" font-family="Verdana" font-size="14.00" fill="#000000">Date</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).Date -->
<g id="edge18" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).Date</title>
<g id="a_edge18"><a xlink:title="at lease.go:103: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).Date]">
<path fill="none" stroke="#000000" d="M300.4005,-369.1813C314.3107,-412.522 354.487,-523.48 420.4784,-593 424.8945,-597.6522 430.1908,-601.8177 435.6768,-605.4577"/>
<polygon fill="#000000" stroke="#000000" points="433.9924,-608.5298 444.3543,-610.7394 437.632,-602.5504 433.9924,-608.5298"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes -->
<g id="node3" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes</title>
<g id="a_node3"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes | defined in lease.go:140&#10;at lease.go:146: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at lease.go:154: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Date).Time]&#10;at lease.go:152: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at lease.go:141: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at lease.go:144: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease]&#10;at lease.go:153: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).TunnelID]&#10;at lease.go:154: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).Date]&#10;at lease.go:141: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at lease.go:156: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at lease.go:146: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M149.4338,-369C149.4338,-369 27.8552,-369 27.8552,-369 21.8552,-369 15.8552,-363 15.8552,-357 15.8552,-357 15.8552,-345 15.8552,-345 15.8552,-339 21.8552,-333 27.8552,-333 27.8552,-333 149.4338,-333 149.4338,-333 155.4338,-333 161.4338,-339 161.4338,-345 161.4338,-345 161.4338,-357 161.4338,-357 161.4338,-363 155.4338,-369 149.4338,-369"/>
<text text-anchor="middle" x="88.6445" y="-346.8" font-family="Verdana" font-size="14.00" fill="#000000">NewLeaseFromBytes</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease -->
<g id="edge12" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease</title>
<g id="a_edge12"><a xlink:title="at lease.go:144: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease]">
<path fill="none" stroke="#000000" d="M161.3567,-351C187.8418,-351 217.2658,-351 241.7376,-351"/>
<polygon fill="#000000" stroke="#000000" points="241.8993,-354.5001 251.8993,-351 241.8992,-347.5001 241.8993,-354.5001"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField -->
<g id="edge11" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField</title>
<g id="a_edge11"><a xlink:title="at lease.go:141: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="none" stroke="#8b4513" d="M99.995,-332.9943C121.5767,-300.5859 171.9856,-233.1879 234.289,-205 293.9799,-177.9941 370.8655,-178.7083 420.6831,-183.1515"/>
<polygon fill="#8b4513" stroke="#8b4513" points="420.5941,-186.6593 430.8869,-184.1476 421.2742,-179.6924 420.5941,-186.6593"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge8" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge8"><a xlink:title="at lease.go:152: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M98.0298,-332.7859C117.8314,-296.3425 167.6052,-214.564 234.289,-175 291.0131,-141.3451 367.5323,-131.6761 418.1586,-129.2264"/>
<polygon fill="#8b4513" stroke="#8b4513" points="418.3886,-132.72 428.2384,-128.8174 418.1047,-125.7258 418.3886,-132.72"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="edge20" class="edge">
<g id="edge5" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_edge20"><a xlink:title="at lease.go:146: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M157.9926,-332.8908C237.9871,-312.0014 366.7911,-278.3661 431.6069,-261.4404"/>
<polygon fill="#8b4513" stroke="#8b4513" points="432.6516,-264.7851 441.4428,-258.8719 430.8829,-258.0122 432.6516,-264.7851"/>
<g id="a_edge5"><a xlink:title="at lease.go:146: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M157.1071,-333.9432C237.1567,-312.8304 366.9508,-278.5977 431.9072,-261.4656"/>
<polygon fill="#8b4513" stroke="#8b4513" points="432.9814,-264.8021 441.7581,-258.8675 431.1961,-258.0335 432.9814,-264.8021"/>
</a>
</g>
</g>
@ -269,20 +177,40 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError -->
<g id="edge3" class="edge">
<g id="edge4" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError</title>
<g id="a_edge3"><a xlink:title="at lease.go:146: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="none" stroke="#8b4513" d="M95.2424,-332.7646C111.6573,-290.0745 158.5544,-183.1699 234.289,-129 289.9619,-89.1794 369.4031,-75.3178 420.7361,-70.5142"/>
<polygon fill="#8b4513" stroke="#8b4513" points="421.2621,-73.9821 430.9284,-69.6448 420.6671,-67.0074 421.2621,-73.9821"/>
<g id="a_edge4"><a xlink:title="at lease.go:146: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="none" stroke="#8b4513" d="M95.218,-333.6831C111.5803,-290.8021 158.3717,-183.4188 234.289,-129 289.9209,-89.1221 369.3726,-75.2752 420.7191,-70.4904"/>
<polygon fill="#8b4513" stroke="#8b4513" points="421.2461,-73.9584 430.9142,-69.625 420.654,-66.9835 421.2461,-73.9584"/>
</a>
</g>
</g>
<!-- (*github.com/sirupsen/logrus.Logger).Debug -->
<g id="node11" class="node">
<title>(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_node11"><a xlink:title="(*github.com/sirupsen/logrus.Logger).Debug | defined in logger.go:221">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M490.4098,-408C490.4098,-408 452.7658,-408 452.7658,-408 446.7658,-408 440.7658,-402 440.7658,-396 440.7658,-396 440.7658,-384 440.7658,-384 440.7658,-378 446.7658,-372 452.7658,-372 452.7658,-372 490.4098,-372 490.4098,-372 496.4098,-372 502.4098,-378 502.4098,-384 502.4098,-384 502.4098,-396 502.4098,-396 502.4098,-402 496.4098,-408 490.4098,-408"/>
<text text-anchor="middle" x="471.5878" y="-394.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
<text text-anchor="middle" x="471.5878" y="-377.4" font-family="Verdana" font-size="14.00" fill="#000000">Debug</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge19" class="edge">
<g id="edge21" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge19"><a xlink:title="at lease.go:141: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at lease.go:156: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M161.1936,-369.0675C184.401,-374.1391 210.2963,-379.0654 234.289,-382 302.7597,-390.3749 383.1129,-391.2191 430.5557,-390.7994"/>
<polygon fill="#8b4513" stroke="#8b4513" points="430.7759,-394.2973 440.736,-390.6852 430.6973,-387.2977 430.7759,-394.2973"/>
<g id="a_edge21"><a xlink:title="at lease.go:141: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at lease.go:156: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M160.8141,-370.0472C184.1162,-375.1506 210.1618,-380.1005 234.289,-383 302.768,-391.2296 383.1186,-391.6912 430.5587,-391.0239"/>
<polygon fill="#8b4513" stroke="#8b4513" points="430.7975,-394.5205 440.7384,-390.856 430.682,-387.5215 430.7975,-394.5205"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Date).Time -->
<g id="node12" class="node">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Date).Time</title>
<g id="a_node12"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Date).Time | defined in date.go:47">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M486.5878,-494C486.5878,-494 456.5878,-494 456.5878,-494 450.5878,-494 444.5878,-488 444.5878,-482 444.5878,-482 444.5878,-470 444.5878,-470 444.5878,-464 450.5878,-458 456.5878,-458 456.5878,-458 486.5878,-458 486.5878,-458 492.5878,-458 498.5878,-464 498.5878,-470 498.5878,-470 498.5878,-482 498.5878,-482 498.5878,-488 492.5878,-494 486.5878,-494"/>
<text text-anchor="middle" x="471.5878" y="-480.2" font-family="Verdana" font-size="14.00" fill="#000000">data</text>
<text text-anchor="middle" x="471.5878" y="-463.4" font-family="Verdana" font-size="14.00" fill="#000000">Time</text>
</a>
</g>
</g>
@ -290,81 +218,153 @@
<g id="edge7" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Date).Time</title>
<g id="a_edge7"><a xlink:title="at lease.go:154: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Date).Time]">
<path fill="none" stroke="#8b4513" d="M143.9188,-369.0426C223.118,-394.8947 366.7757,-441.7873 434.442,-463.8749"/>
<polygon fill="#8b4513" stroke="#8b4513" points="433.6506,-467.2983 444.2431,-467.0742 435.8228,-460.6438 433.6506,-467.2983"/>
<path fill="none" stroke="#8b4513" d="M144.3277,-370.0307C223.6462,-395.7146 367.017,-442.1392 434.5303,-464.0005"/>
<polygon fill="#8b4513" stroke="#8b4513" points="433.7171,-467.416 444.309,-467.1669 435.8735,-460.7565 433.7171,-467.416"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).TunnelID -->
<g id="node14" class="node">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).TunnelID</title>
<g id="a_node14"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).TunnelID | defined in lease.go:70&#10;at lease.go:73: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M499.014,-580C499.014,-580 444.1616,-580 444.1616,-580 438.1616,-580 432.1616,-574 432.1616,-568 432.1616,-568 432.1616,-556 432.1616,-556 432.1616,-550 438.1616,-544 444.1616,-544 444.1616,-544 499.014,-544 499.014,-544 505.014,-544 511.014,-550 511.014,-556 511.014,-556 511.014,-568 511.014,-568 511.014,-574 505.014,-580 499.014,-580"/>
<text text-anchor="middle" x="471.5878" y="-557.8" font-family="Verdana" font-size="14.00" fill="#000000">TunnelID</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).TunnelID -->
<g id="edge13" class="edge">
<g id="edge6" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).TunnelID</title>
<g id="a_edge13"><a xlink:title="at lease.go:153: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).TunnelID]">
<path fill="none" stroke="#000000" d="M121.6255,-369.1724C191.2724,-407.5475 353.2233,-496.7817 429.9054,-539.0332"/>
<polygon fill="#000000" stroke="#000000" points="428.3747,-542.1859 438.8222,-543.9463 431.7528,-536.0549 428.3747,-542.1859"/>
<g id="a_edge6"><a xlink:title="at lease.go:153: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).TunnelID]">
<path fill="none" stroke="#000000" d="M121.6255,-370.0862C191.1853,-408.2317 352.8181,-496.8686 429.6171,-538.9839"/>
<polygon fill="#000000" stroke="#000000" points="428.0993,-542.1433 438.5504,-543.8828 431.4652,-536.0056 428.0993,-542.1433"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).Date -->
<g id="node15" class="node">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).Date</title>
<g id="a_node15"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).Date | defined in lease.go:78">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M486.5878,-641C486.5878,-641 456.5878,-641 456.5878,-641 450.5878,-641 444.5878,-635 444.5878,-629 444.5878,-629 444.5878,-617 444.5878,-617 444.5878,-611 450.5878,-605 456.5878,-605 456.5878,-605 486.5878,-605 486.5878,-605 492.5878,-605 498.5878,-611 498.5878,-617 498.5878,-617 498.5878,-629 498.5878,-629 498.5878,-635 492.5878,-641 486.5878,-641"/>
<text text-anchor="middle" x="471.5878" y="-618.8" font-family="Verdana" font-size="14.00" fill="#000000">Date</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).Date -->
<g id="edge14" class="edge">
<g id="edge12" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLeaseFromBytes&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).Date</title>
<g id="a_edge14"><a xlink:title="at lease.go:154: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).Date]">
<path fill="none" stroke="#000000" d="M109.2931,-369.2294C137.0112,-393.4138 188.1173,-437.0086 234.289,-471 313.9603,-529.6536 336.4171,-540.8325 420.4784,-593 425.2866,-595.9839 430.3879,-599.0704 435.4344,-602.0777"/>
<polygon fill="#000000" stroke="#000000" points="433.9939,-605.2919 444.3837,-607.366 437.555,-599.2654 433.9939,-605.2919"/>
<g id="a_edge12"><a xlink:title="at lease.go:154: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).Date]">
<path fill="none" stroke="#000000" d="M109.2739,-370.2555C136.9708,-394.4689 188.0534,-438.0956 234.289,-472 313.8747,-530.3598 336.5256,-541.1186 420.4784,-593 425.2922,-595.9749 430.3967,-599.0562 435.4447,-602.0609"/>
<polygon fill="#000000" stroke="#000000" points="434.005,-605.2754 444.3953,-607.3472 437.5648,-599.2482 434.005,-605.2754"/>
</a>
</g>
</g>
<!-- github.com/samber/oops.Errorf -->
<g id="node5" class="node">
<title>github.com/samber/oops.Errorf</title>
<g id="a_node5"><a xlink:title="github.com/samber/oops.Errorf | defined in oops.go:34">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M488.7831,-330C488.7831,-330 454.3925,-330 454.3925,-330 448.3925,-330 442.3925,-324 442.3925,-318 442.3925,-318 442.3925,-306 442.3925,-306 442.3925,-300 448.3925,-294 454.3925,-294 454.3925,-294 488.7831,-294 488.7831,-294 494.7831,-294 500.7831,-300 500.7831,-306 500.7831,-306 500.7831,-318 500.7831,-318 500.7831,-324 494.7831,-330 488.7831,-330"/>
<text text-anchor="middle" x="471.5878" y="-316.2" font-family="Verdana" font-size="14.00" fill="#000000">oops</text>
<text text-anchor="middle" x="471.5878" y="-299.4" font-family="Verdana" font-size="14.00" fill="#000000">Errorf</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge15" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge15"><a xlink:title="at lease.go:90: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M337.6588,-342.3171C366.587,-335.7687 404.4919,-327.1883 432.5907,-320.8277"/>
<polygon fill="#8b4513" stroke="#8b4513" points="433.4839,-324.2141 442.4644,-318.5926 431.9384,-317.3868 433.4839,-324.2141"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField -->
<g id="edge17" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField</title>
<g id="a_edge17"><a xlink:title="at lease.go:87: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="none" stroke="#8b4513" d="M309.8202,-333.5984C332.1151,-306.8286 376.2323,-256.4766 420.4784,-221 423.5779,-218.5148 426.8932,-216.0797 430.2906,-213.7353"/>
<polygon fill="#8b4513" stroke="#8b4513" points="432.3984,-216.5381 438.8283,-208.1174 428.5506,-210.6905 432.3984,-216.5381"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge8" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge8"><a xlink:title="at lease.go:91: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at lease.go:101: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M308.5198,-333.7011C321.0696,-316.6688 340.023,-290.4563 355.4784,-267 386.0932,-220.5367 381.1197,-199.3318 420.4784,-160 422.9387,-157.5414 425.6308,-155.1952 428.4518,-152.9742"/>
<polygon fill="#8b4513" stroke="#8b4513" points="430.5942,-155.7444 436.6582,-147.0566 426.4999,-150.0666 430.5942,-155.7444"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="edge1" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_edge1"><a xlink:title="at lease.go:94: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M321.1218,-333.8135C346.0516,-316.9436 384.9088,-291.6981 420.4784,-273 424.2782,-271.0026 428.2988,-269.0357 432.3491,-267.1489"/>
<polygon fill="#8b4513" stroke="#8b4513" points="434.0789,-270.2087 441.7637,-262.9152 431.2079,-263.8245 434.0789,-270.2087"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge10" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge10"><a xlink:title="at lease.go:87: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at lease.go:105: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M337.6588,-361.1987C366.0412,-367.3023 403.0647,-375.2642 430.9898,-381.2695"/>
<polygon fill="#8b4513" stroke="#8b4513" points="430.3212,-384.7056 440.8335,-383.3863 431.7929,-377.8621 430.3212,-384.7056"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Date).Time -->
<g id="edge18" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Date).Time</title>
<g id="a_edge18"><a xlink:title="at lease.go:103: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Date).Time]">
<path fill="none" stroke="#8b4513" d="M320.578,-370.0307C351.4625,-391.7035 403.3925,-428.1448 437.5774,-452.1336"/>
<polygon fill="#8b4513" stroke="#8b4513" points="435.6664,-455.0683 445.8625,-457.9476 439.6873,-449.3384 435.6664,-455.0683"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).TunnelID -->
<g id="edge3" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).TunnelID</title>
<g id="a_edge3"><a xlink:title="at lease.go:102: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).TunnelID]">
<path fill="none" stroke="#000000" d="M308.7434,-370.1622C331.4192,-399.6574 378.1669,-459.5504 420.4784,-508 428.753,-517.475 438.1342,-527.5615 446.5804,-536.421"/>
<polygon fill="#000000" stroke="#000000" points="444.2593,-539.057 453.7108,-543.8445 449.3077,-534.2079 444.2593,-539.057"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).Date -->
<g id="edge11" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.ReadLease&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).Date</title>
<g id="a_edge11"><a xlink:title="at lease.go:103: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).Date]">
<path fill="none" stroke="#000000" d="M300.4209,-370.1055C314.376,-413.2656 354.643,-523.762 420.4784,-593 424.8984,-597.6485 430.1968,-601.8121 435.6835,-605.4513"/>
<polygon fill="#000000" stroke="#000000" points="433.9995,-608.5236 444.3614,-610.7327 437.6387,-602.5439 433.9995,-608.5236"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLease -->
<g id="node4" class="node">
<g id="node6" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLease</title>
<g id="a_node4"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLease | defined in lease.go:111&#10;at lease.go:130: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at lease.go:112: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at lease.go:133: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M324.4525,-253C324.4525,-253 265.3149,-253 265.3149,-253 259.3149,-253 253.3149,-247 253.3149,-241 253.3149,-241 253.3149,-229 253.3149,-229 253.3149,-223 259.3149,-217 265.3149,-217 265.3149,-217 324.4525,-217 324.4525,-217 330.4525,-217 336.4525,-223 336.4525,-229 336.4525,-229 336.4525,-241 336.4525,-241 336.4525,-247 330.4525,-253 324.4525,-253"/>
<text text-anchor="middle" x="294.8837" y="-230.8" font-family="Verdana" font-size="14.00" fill="#000000">NewLease</text>
<g id="a_node6"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLease | defined in lease.go:111&#10;at lease.go:112: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at lease.go:133: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at lease.go:130: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M324.4525,-254C324.4525,-254 265.3149,-254 265.3149,-254 259.3149,-254 253.3149,-248 253.3149,-242 253.3149,-242 253.3149,-230 253.3149,-230 253.3149,-224 259.3149,-218 265.3149,-218 265.3149,-218 324.4525,-218 324.4525,-218 330.4525,-218 336.4525,-224 336.4525,-230 336.4525,-230 336.4525,-242 336.4525,-242 336.4525,-248 330.4525,-254 324.4525,-254"/>
<text text-anchor="middle" x="294.8837" y="-231.8" font-family="Verdana" font-size="14.00" fill="#000000">NewLease</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLease&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge4" class="edge">
<g id="edge20" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLease&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge4"><a xlink:title="at lease.go:130: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M313.429,-216.74C331.8988,-199.39 361.7188,-173.5594 391.4784,-157 399.9823,-152.2681 409.4313,-148.1139 418.7714,-144.5544"/>
<polygon fill="#8b4513" stroke="#8b4513" points="420.2098,-147.756 428.4212,-141.0609 417.827,-141.1741 420.2098,-147.756"/>
<g id="a_edge20"><a xlink:title="at lease.go:130: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M313.4696,-217.8123C331.9694,-200.5161 361.811,-174.724 391.4784,-158 399.9895,-153.2022 409.4419,-148.9495 418.7832,-145.2801"/>
<polygon fill="#8b4513" stroke="#8b4513" points="420.2944,-148.4518 428.4335,-141.669 417.8411,-141.8957 420.2944,-148.4518"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLease&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge21" class="edge">
<g id="edge19" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.NewLease&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge21"><a xlink:title="at lease.go:112: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at lease.go:133: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M308.0787,-253.1518C329.1365,-281.042 372.8504,-334.694 420.4784,-368 423.9518,-370.4289 427.7359,-372.6715 431.6221,-374.7203"/>
<polygon fill="#8b4513" stroke="#8b4513" points="430.2507,-377.9448 440.7773,-379.1454 433.297,-371.6424 430.2507,-377.9448"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.init -->
<g id="node5" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.init</title>
<g id="a_node5"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.init | defined in .:0&#10;at lease.go:59: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M103.6445,-54C103.6445,-54 73.6445,-54 73.6445,-54 67.6445,-54 61.6445,-48 61.6445,-42 61.6445,-42 61.6445,-30 61.6445,-30 61.6445,-24 67.6445,-18 73.6445,-18 73.6445,-18 103.6445,-18 103.6445,-18 109.6445,-18 115.6445,-24 115.6445,-30 115.6445,-30 115.6445,-42 115.6445,-42 115.6445,-48 109.6445,-54 103.6445,-54"/>
<text text-anchor="middle" x="88.6445" y="-31.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="node6" class="node">
<title>github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_node6"><a xlink:title="github.com/go&#45;i2p/logger.GetGoI2PLogger | defined in log.go:120">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M343.5732,-54C343.5732,-54 246.1942,-54 246.1942,-54 240.1942,-54 234.1942,-48 234.1942,-42 234.1942,-42 234.1942,-30 234.1942,-30 234.1942,-24 240.1942,-18 246.1942,-18 246.1942,-18 343.5732,-18 343.5732,-18 349.5732,-18 355.5732,-24 355.5732,-30 355.5732,-30 355.5732,-42 355.5732,-42 355.5732,-48 349.5732,-54 343.5732,-54"/>
<text text-anchor="middle" x="294.8837" y="-40.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="294.8837" y="-23.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="edge15" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_edge15"><a xlink:title="at lease.go:59: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="none" stroke="#8b4513" d="M116.0315,-36C143.3741,-36 186.5488,-36 223.628,-36"/>
<polygon fill="#8b4513" stroke="#8b4513" points="223.9065,-39.5001 233.9064,-36 223.9064,-32.5001 223.9065,-39.5001"/>
<g id="a_edge19"><a xlink:title="at lease.go:112: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at lease.go:133: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M308.1096,-254.0083C329.2087,-281.6794 372.977,-334.9156 420.4784,-368 423.9564,-370.4224 427.7435,-372.6607 431.6316,-374.7068"/>
<polygon fill="#8b4513" stroke="#8b4513" points="430.262,-377.9321 440.7891,-379.1285 433.3058,-371.6285 430.262,-377.9321"/>
</a>
</g>
</g>
@ -379,9 +379,9 @@
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).TunnelID&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int -->
<g id="edge16" class="edge">
<g id="edge2" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/lease.Lease).TunnelID&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int</title>
<g id="a_edge16"><a xlink:title="at lease.go:73: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]">
<g id="a_edge2"><a xlink:title="at lease.go:73: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/data.Integer).Int]">
<path fill="none" stroke="#8b4513" d="M511.1557,-562C534.257,-562 563.2443,-562 586.0141,-562"/>
<polygon fill="#8b4513" stroke="#8b4513" points="586.3165,-565.5001 596.3164,-562 586.3164,-558.5001 586.3165,-565.5001"/>
</a>

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/common/lease_set"
![lease_set.svg](lease_set)
![lease_set.svg](lease_set.svg)
Package lease_set implements the I2P LeastSet common data structure

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 135 KiB

After

Width:  |  Height:  |  Size: 136 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/common/router_address"
![router_address.svg](router_address)
![router_address.svg](router_address.svg)
Package router_address implements the I2P RouterAddress common data structure

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 147 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/common/router_identity"
![router_identity.svg](router_identity)
![router_identity.svg](router_identity.svg)
Package router_identity implements the I2P RouterIdentity common data structure

View File

@ -4,225 +4,94 @@
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: gocallvis Pages: 1 -->
<svg width="435pt" height="723pt"
viewBox="0.00 0.00 435.23 723.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 723)">
<svg width="435pt" height="714pt"
viewBox="0.00 0.00 435.23 714.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 714)">
<title>gocallvis</title>
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-723 435.2274,-723 435.2274,0 0,0"/>
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-714 435.2274,-714 435.2274,0 0,0"/>
<g id="clust1" class="cluster">
<title>cluster_focus</title>
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-715 427.2274,-715 427.2274,-8 8,-8"/>
<text text-anchor="middle" x="217.6137" y="-694.8" font-family="Arial" font-size="18.00" fill="#000000">router_identity</text>
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-706 427.2274,-706 427.2274,-8 8,-8"/>
<text text-anchor="middle" x="217.6137" y="-685.8" font-family="Arial" font-size="18.00" fill="#000000">router_identity</text>
</g>
<g id="clust4" class="cluster">
<title>cluster_github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate</title>
<g id="a_clust4"><a xlink:title="type: github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate">
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M247.606,-16C247.606,-16 395.0366,-16 395.0366,-16 401.0366,-16 407.0366,-22 407.0366,-28 407.0366,-28 407.0366,-143 407.0366,-143 407.0366,-149 401.0366,-155 395.0366,-155 395.0366,-155 247.606,-155 247.606,-155 241.606,-155 235.606,-149 235.606,-143 235.606,-143 235.606,-28 235.606,-28 235.606,-22 241.606,-16 247.606,-16"/>
<text text-anchor="middle" x="321.3213" y="-24.5" font-family="Arial" font-size="15.00" fill="#222222">(KeyCertificate)</text>
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M247.606,-529C247.606,-529 395.0366,-529 395.0366,-529 401.0366,-529 407.0366,-535 407.0366,-541 407.0366,-541 407.0366,-656 407.0366,-656 407.0366,-662 401.0366,-668 395.0366,-668 395.0366,-668 247.606,-668 247.606,-668 241.606,-668 235.606,-662 235.606,-656 235.606,-656 235.606,-541 235.606,-541 235.606,-535 241.606,-529 247.606,-529"/>
<text text-anchor="middle" x="321.3213" y="-537.5" font-family="Arial" font-size="15.00" fill="#222222">(KeyCertificate)</text>
</a>
</g>
</g>
<g id="clust3" class="cluster">
<title>cluster_*github.com/sirupsen/logrus.Logger</title>
<g id="a_clust3"><a xlink:title="type: *github.com/sirupsen/logrus.Logger">
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M294.6607,-277C294.6607,-277 348.9819,-277 348.9819,-277 354.9819,-277 360.9819,-283 360.9819,-289 360.9819,-289 360.9819,-343 360.9819,-343 360.9819,-349 354.9819,-355 348.9819,-355 348.9819,-355 294.6607,-355 294.6607,-355 288.6607,-355 282.6607,-349 282.6607,-343 282.6607,-343 282.6607,-289 282.6607,-289 282.6607,-283 288.6607,-277 294.6607,-277"/>
<text text-anchor="middle" x="321.8213" y="-285.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M294.6607,-182C294.6607,-182 348.9819,-182 348.9819,-182 354.9819,-182 360.9819,-188 360.9819,-194 360.9819,-194 360.9819,-248 360.9819,-248 360.9819,-254 354.9819,-260 348.9819,-260 348.9819,-260 294.6607,-260 294.6607,-260 288.6607,-260 282.6607,-254 282.6607,-248 282.6607,-248 282.6607,-194 282.6607,-194 282.6607,-188 288.6607,-182 294.6607,-182"/>
<text text-anchor="middle" x="321.8213" y="-190.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
</a>
</g>
</g>
<g id="clust2" class="cluster">
<title>cluster_*github.com/go&#45;i2p/logger.Logger</title>
<g id="a_clust2"><a xlink:title="type: *github.com/go&#45;i2p/logger.Logger">
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M282.2119,-363C282.2119,-363 360.4307,-363 360.4307,-363 366.4307,-363 372.4307,-369 372.4307,-375 372.4307,-375 372.4307,-551 372.4307,-551 372.4307,-557 366.4307,-563 360.4307,-563 360.4307,-563 282.2119,-563 282.2119,-563 276.2119,-563 270.2119,-557 270.2119,-551 270.2119,-551 270.2119,-375 270.2119,-375 270.2119,-369 276.2119,-363 282.2119,-363"/>
<text text-anchor="middle" x="321.3213" y="-371.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.init -->
<g id="node1" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.init</title>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.init | defined in .:0&#10;at router_identity.go:14: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M98.2076,-677C98.2076,-677 68.2076,-677 68.2076,-677 62.2076,-677 56.2076,-671 56.2076,-665 56.2076,-665 56.2076,-653 56.2076,-653 56.2076,-647 62.2076,-641 68.2076,-641 68.2076,-641 98.2076,-641 98.2076,-641 104.2076,-641 110.2076,-647 110.2076,-653 110.2076,-653 110.2076,-665 110.2076,-665 110.2076,-671 104.2076,-677 98.2076,-677"/>
<text text-anchor="middle" x="83.2076" y="-654.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="node2" class="node">
<title>github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_node2"><a xlink:title="github.com/go&#45;i2p/logger.GetGoI2PLogger | defined in log.go:120">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M370.0108,-677C370.0108,-677 272.6318,-677 272.6318,-677 266.6318,-677 260.6318,-671 260.6318,-665 260.6318,-665 260.6318,-653 260.6318,-653 260.6318,-647 266.6318,-641 272.6318,-641 272.6318,-641 370.0108,-641 370.0108,-641 376.0108,-641 382.0108,-647 382.0108,-653 382.0108,-653 382.0108,-665 382.0108,-665 382.0108,-671 376.0108,-677 370.0108,-677"/>
<text text-anchor="middle" x="321.3213" y="-663.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="321.3213" y="-646.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="edge8" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_edge8"><a xlink:title="at router_identity.go:14: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="none" stroke="#8b4513" d="M110.5223,-659C144.4368,-659 203.5523,-659 250.5669,-659"/>
<polygon fill="#8b4513" stroke="#8b4513" points="250.7058,-662.5001 260.7058,-659 250.7058,-655.5001 250.7058,-662.5001"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity -->
<g id="node3" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity</title>
<g id="a_node3"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity | defined in router_identity.go:37&#10;at router_identity.go:38: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at router_identity.go:49: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at router_identity.go:41: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert]&#10;at router_identity.go:43: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at router_identity.go:40: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at router_identity.go:51: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at router_identity.go:43: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M138.6234,-494C138.6234,-494 27.7918,-494 27.7918,-494 21.7918,-494 15.7918,-488 15.7918,-482 15.7918,-482 15.7918,-470 15.7918,-470 15.7918,-464 21.7918,-458 27.7918,-458 27.7918,-458 138.6234,-458 138.6234,-458 144.6234,-458 150.6234,-464 150.6234,-470 150.6234,-470 150.6234,-482 150.6234,-482 150.6234,-488 144.6234,-494 138.6234,-494"/>
<text text-anchor="middle" x="83.2076" y="-471.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadRouterIdentity</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert -->
<g id="node4" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert</title>
<g id="a_node4"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert | defined in keys_and_cert.go:142">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M374.0622,-616C374.0622,-616 268.5804,-616 268.5804,-616 262.5804,-616 256.5804,-610 256.5804,-604 256.5804,-604 256.5804,-592 256.5804,-592 256.5804,-586 262.5804,-580 268.5804,-580 268.5804,-580 374.0622,-580 374.0622,-580 380.0622,-580 386.0622,-586 386.0622,-592 386.0622,-592 386.0622,-604 386.0622,-604 386.0622,-610 380.0622,-616 374.0622,-616"/>
<text text-anchor="middle" x="321.3213" y="-602.2" font-family="Verdana" font-size="14.00" fill="#000000">keys_and_cert</text>
<text text-anchor="middle" x="321.3213" y="-585.4" font-family="Verdana" font-size="14.00" fill="#000000">ReadKeysAndCert</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert -->
<g id="edge2" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert</title>
<g id="a_edge2"><a xlink:title="at router_identity.go:41: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert]">
<path fill="none" stroke="#8b4513" d="M105.7577,-494.0532C132.4636,-514.6754 178.9508,-548.2396 223.4152,-569 230.781,-572.4391 238.6493,-575.5766 246.6038,-578.4102"/>
<polygon fill="#8b4513" stroke="#8b4513" points="245.7269,-581.8088 256.3213,-581.7158 247.9812,-575.1817 245.7269,-581.8088"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="node8" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_node8"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).WithFields | defined in log.go:60">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M352.5404,-494C352.5404,-494 290.1022,-494 290.1022,-494 284.1022,-494 278.1022,-488 278.1022,-482 278.1022,-482 278.1022,-470 278.1022,-470 278.1022,-464 284.1022,-458 290.1022,-458 290.1022,-458 352.5404,-458 352.5404,-458 358.5404,-458 364.5404,-464 364.5404,-470 364.5404,-470 364.5404,-482 364.5404,-482 364.5404,-488 358.5404,-494 352.5404,-494"/>
<text text-anchor="middle" x="321.3213" y="-480.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="321.3213" y="-463.4" font-family="Verdana" font-size="14.00" fill="#000000">WithFields</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge1" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge1"><a xlink:title="at router_identity.go:38: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at router_identity.go:49: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M150.4867,-476C187.5024,-476 232.8113,-476 267.4645,-476"/>
<polygon fill="#8b4513" stroke="#8b4513" points="267.8559,-479.5001 277.8558,-476 267.8558,-472.5001 267.8559,-479.5001"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/logger.Logger).WithError -->
<g id="node9" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).WithError</title>
<g id="a_node9"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).WithError | defined in log.go:66">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M349.8528,-555C349.8528,-555 292.7898,-555 292.7898,-555 286.7898,-555 280.7898,-549 280.7898,-543 280.7898,-543 280.7898,-531 280.7898,-531 280.7898,-525 286.7898,-519 292.7898,-519 292.7898,-519 349.8528,-519 349.8528,-519 355.8528,-519 361.8528,-525 361.8528,-531 361.8528,-531 361.8528,-543 361.8528,-543 361.8528,-549 355.8528,-555 349.8528,-555"/>
<text text-anchor="middle" x="321.3213" y="-541.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="321.3213" y="-524.4" font-family="Verdana" font-size="14.00" fill="#000000">WithError</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError -->
<g id="edge9" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError</title>
<g id="a_edge9"><a xlink:title="at router_identity.go:43: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="none" stroke="#8b4513" d="M150.4867,-493.2356C188.6633,-503.0157 235.6615,-515.0557 270.6929,-524.03"/>
<polygon fill="#8b4513" stroke="#8b4513" points="270.1414,-527.5017 280.6972,-526.5929 271.8786,-520.7207 270.1414,-527.5017"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="node10" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_node10"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).Error | defined in log.go:42">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M339.0876,-433C339.0876,-433 303.555,-433 303.555,-433 297.555,-433 291.555,-427 291.555,-421 291.555,-421 291.555,-409 291.555,-409 291.555,-403 297.555,-397 303.555,-397 303.555,-397 339.0876,-397 339.0876,-397 345.0876,-397 351.0876,-403 351.0876,-409 351.0876,-409 351.0876,-421 351.0876,-421 351.0876,-427 345.0876,-433 339.0876,-433"/>
<text text-anchor="middle" x="321.3213" y="-419.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="321.3213" y="-402.4" font-family="Verdana" font-size="14.00" fill="#000000">Error</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="edge13" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_edge13"><a xlink:title="at router_identity.go:43: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M150.4867,-458.7644C192.6687,-447.9582 245.6205,-434.393 281.3,-425.2527"/>
<polygon fill="#8b4513" stroke="#8b4513" points="282.5155,-428.5544 291.3341,-422.6821 280.7783,-421.7733 282.5155,-428.5544"/>
</a>
</g>
</g>
<!-- (*github.com/sirupsen/logrus.Logger).Debug -->
<g id="node11" class="node">
<title>(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_node11"><a xlink:title="(*github.com/sirupsen/logrus.Logger).Debug | defined in logger.go:221">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M340.1433,-347C340.1433,-347 302.4993,-347 302.4993,-347 296.4993,-347 290.4993,-341 290.4993,-335 290.4993,-335 290.4993,-323 290.4993,-323 290.4993,-317 296.4993,-311 302.4993,-311 302.4993,-311 340.1433,-311 340.1433,-311 346.1433,-311 352.1433,-317 352.1433,-323 352.1433,-323 352.1433,-335 352.1433,-335 352.1433,-341 346.1433,-347 340.1433,-347"/>
<text text-anchor="middle" x="321.3213" y="-333.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
<text text-anchor="middle" x="321.3213" y="-316.4" font-family="Verdana" font-size="14.00" fill="#000000">Debug</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge12" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge12"><a xlink:title="at router_identity.go:40: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at router_identity.go:51: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M99.5433,-457.9298C124.0103,-431.9254 172.74,-384.105 223.4152,-357 241.1722,-347.5022 262.5106,-340.913 280.7278,-336.5245"/>
<polygon fill="#8b4513" stroke="#8b4513" points="281.5084,-339.9364 290.4848,-334.3084 279.9579,-333.1103 281.5084,-339.9364"/>
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M282.2119,-268C282.2119,-268 360.4307,-268 360.4307,-268 366.4307,-268 372.4307,-274 372.4307,-280 372.4307,-280 372.4307,-456 372.4307,-456 372.4307,-462 366.4307,-468 360.4307,-468 360.4307,-468 282.2119,-468 282.2119,-468 276.2119,-468 270.2119,-462 270.2119,-456 270.2119,-456 270.2119,-280 270.2119,-280 270.2119,-274 276.2119,-268 282.2119,-268"/>
<text text-anchor="middle" x="321.3213" y="-276.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity -->
<g id="node5" class="node">
<g id="node1" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity</title>
<g id="a_node5"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity | defined in router_identity.go:55&#10;at router_identity.go:56: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at router_identity.go:82: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at router_identity.go:60: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificateFromCertificate]&#10;at router_identity.go:62: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at router_identity.go:69: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at router_identity.go:67: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert]&#10;at router_identity.go:79: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType]&#10;at router_identity.go:62: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at router_identity.go:69: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at router_identity.go:78: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at router_identity.go:80: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M137.2848,-283C137.2848,-283 29.1304,-283 29.1304,-283 23.1304,-283 17.1304,-277 17.1304,-271 17.1304,-271 17.1304,-259 17.1304,-259 17.1304,-253 23.1304,-247 29.1304,-247 29.1304,-247 137.2848,-247 137.2848,-247 143.2848,-247 149.2848,-253 149.2848,-259 149.2848,-259 149.2848,-271 149.2848,-271 149.2848,-277 143.2848,-283 137.2848,-283"/>
<text text-anchor="middle" x="83.2076" y="-260.8" font-family="Verdana" font-size="14.00" fill="#000000">NewRouterIdentity</text>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity | defined in router_identity.go:55&#10;at router_identity.go:56: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at router_identity.go:82: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at router_identity.go:62: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at router_identity.go:69: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at router_identity.go:80: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType]&#10;at router_identity.go:62: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at router_identity.go:69: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at router_identity.go:60: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificateFromCertificate]&#10;at router_identity.go:78: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at router_identity.go:67: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert]&#10;at router_identity.go:79: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M137.2848,-454C137.2848,-454 29.1304,-454 29.1304,-454 23.1304,-454 17.1304,-448 17.1304,-442 17.1304,-442 17.1304,-430 17.1304,-430 17.1304,-424 23.1304,-418 29.1304,-418 29.1304,-418 137.2848,-418 137.2848,-418 143.2848,-418 149.2848,-424 149.2848,-430 149.2848,-430 149.2848,-442 149.2848,-442 149.2848,-448 143.2848,-454 137.2848,-454"/>
<text text-anchor="middle" x="83.2076" y="-431.8" font-family="Verdana" font-size="14.00" fill="#000000">NewRouterIdentity</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificateFromCertificate -->
<g id="node6" class="node">
<g id="node2" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificateFromCertificate</title>
<g id="a_node6"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificateFromCertificate | defined in key_certificate.go:395">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M407.1336,-208C407.1336,-208 235.509,-208 235.509,-208 229.509,-208 223.509,-202 223.509,-196 223.509,-196 223.509,-184 223.509,-184 223.509,-178 229.509,-172 235.509,-172 235.509,-172 407.1336,-172 407.1336,-172 413.1336,-172 419.1336,-178 419.1336,-184 419.1336,-184 419.1336,-196 419.1336,-196 419.1336,-202 413.1336,-208 407.1336,-208"/>
<text text-anchor="middle" x="321.3213" y="-194.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
<text text-anchor="middle" x="321.3213" y="-177.4" font-family="Verdana" font-size="14.00" fill="#000000">KeyCertificateFromCertificate</text>
<g id="a_node2"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificateFromCertificate | defined in key_certificate.go:395">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M407.1336,-174C407.1336,-174 235.509,-174 235.509,-174 229.509,-174 223.509,-168 223.509,-162 223.509,-162 223.509,-150 223.509,-150 223.509,-144 229.509,-138 235.509,-138 235.509,-138 407.1336,-138 407.1336,-138 413.1336,-138 419.1336,-144 419.1336,-150 419.1336,-150 419.1336,-162 419.1336,-162 419.1336,-168 413.1336,-174 407.1336,-174"/>
<text text-anchor="middle" x="321.3213" y="-160.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
<text text-anchor="middle" x="321.3213" y="-143.4" font-family="Verdana" font-size="14.00" fill="#000000">KeyCertificateFromCertificate</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificateFromCertificate -->
<g id="edge4" class="edge">
<g id="edge7" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificateFromCertificate</title>
<g id="a_edge4"><a xlink:title="at router_identity.go:60: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificateFromCertificate]">
<path fill="none" stroke="#8b4513" d="M140.5448,-246.9402C174.7587,-236.1636 218.372,-222.4265 254.1884,-211.1452"/>
<polygon fill="#8b4513" stroke="#8b4513" points="255.5828,-214.3756 264.0694,-208.033 253.4798,-207.699 255.5828,-214.3756"/>
<g id="a_edge7"><a xlink:title="at router_identity.go:60: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificateFromCertificate]">
<path fill="none" stroke="#8b4513" d="M91.9127,-417.9931C116.9545,-366.4708 189.176,-219.8907 221.6772,-181.4615"/>
<polygon fill="#8b4513" stroke="#8b4513" points="224.4105,-183.6793 229.0315,-174.1453 219.4736,-178.7167 224.4105,-183.6793"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert -->
<g id="node7" class="node">
<g id="node3" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert</title>
<g id="a_node7"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert | defined in keys_and_cert.go:300">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M373.2245,-269C373.2245,-269 269.4181,-269 269.4181,-269 263.4181,-269 257.4181,-263 257.4181,-257 257.4181,-257 257.4181,-245 257.4181,-245 257.4181,-239 263.4181,-233 269.4181,-233 269.4181,-233 373.2245,-233 373.2245,-233 379.2245,-233 385.2245,-239 385.2245,-245 385.2245,-245 385.2245,-257 385.2245,-257 385.2245,-263 379.2245,-269 373.2245,-269"/>
<text text-anchor="middle" x="321.3213" y="-255.2" font-family="Verdana" font-size="14.00" fill="#000000">keys_and_cert</text>
<text text-anchor="middle" x="321.3213" y="-238.4" font-family="Verdana" font-size="14.00" fill="#000000">NewKeysAndCert</text>
<g id="a_node3"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert | defined in keys_and_cert.go:300">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M373.2245,-521C373.2245,-521 269.4181,-521 269.4181,-521 263.4181,-521 257.4181,-515 257.4181,-509 257.4181,-509 257.4181,-497 257.4181,-497 257.4181,-491 263.4181,-485 269.4181,-485 269.4181,-485 373.2245,-485 373.2245,-485 379.2245,-485 385.2245,-491 385.2245,-497 385.2245,-497 385.2245,-509 385.2245,-509 385.2245,-515 379.2245,-521 373.2245,-521"/>
<text text-anchor="middle" x="321.3213" y="-507.2" font-family="Verdana" font-size="14.00" fill="#000000">keys_and_cert</text>
<text text-anchor="middle" x="321.3213" y="-490.4" font-family="Verdana" font-size="14.00" fill="#000000">NewKeysAndCert</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert -->
<g id="edge6" class="edge">
<g id="edge11" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert</title>
<g id="a_edge6"><a xlink:title="at router_identity.go:67: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert]">
<path fill="none" stroke="#8b4513" d="M149.5355,-261.1002C179.8257,-259.3193 215.8222,-257.2029 247.0201,-255.3686"/>
<polygon fill="#8b4513" stroke="#8b4513" points="247.6238,-258.8392 257.4011,-254.7582 247.2129,-251.8513 247.6238,-258.8392"/>
<g id="a_edge11"><a xlink:title="at router_identity.go:67: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.NewKeysAndCert]">
<path fill="none" stroke="#8b4513" d="M147.3309,-454.0429C178.2892,-462.7539 215.5946,-473.2508 247.7093,-482.2872"/>
<polygon fill="#8b4513" stroke="#8b4513" points="246.9223,-485.7016 257.4965,-485.0411 248.8184,-478.9633 246.9223,-485.7016"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge11" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge11"><a xlink:title="at router_identity.go:78: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M100.9862,-283.0291C122.7337,-305.5725 160.0294,-345.8533 187.4152,-384 205.9978,-409.8843 198.46,-426.1872 223.4152,-446 236.2071,-456.1559 252.4275,-462.8861 267.9681,-467.3415"/>
<polygon fill="#8b4513" stroke="#8b4513" points="267.4809,-470.8309 278.0394,-469.954 269.2385,-464.0552 267.4809,-470.8309"/>
<!-- (*github.com/go&#45;i2p/logger.Logger).WithError -->
<g id="node8" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).WithError</title>
<g id="a_node8"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).WithError | defined in log.go:66">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M349.8528,-338C349.8528,-338 292.7898,-338 292.7898,-338 286.7898,-338 280.7898,-332 280.7898,-326 280.7898,-326 280.7898,-314 280.7898,-314 280.7898,-308 286.7898,-302 292.7898,-302 292.7898,-302 349.8528,-302 349.8528,-302 355.8528,-302 361.8528,-308 361.8528,-314 361.8528,-314 361.8528,-326 361.8528,-326 361.8528,-332 355.8528,-338 349.8528,-338"/>
<text text-anchor="middle" x="321.3213" y="-324.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="321.3213" y="-307.4" font-family="Verdana" font-size="14.00" fill="#000000">WithError</text>
</a>
</g>
</g>
@ -230,26 +99,65 @@
<g id="edge5" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError</title>
<g id="a_edge5"><a xlink:title="at router_identity.go:62: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at router_identity.go:69: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="none" stroke="#8b4513" d="M88.6134,-283.2699C102.8782,-328.2912 145.8673,-445.3717 223.4152,-507 236.9003,-517.7168 254.2024,-524.6188 270.5006,-529.0585"/>
<polygon fill="#8b4513" stroke="#8b4513" points="269.9286,-532.5222 280.4756,-531.5168 271.6036,-525.7255 269.9286,-532.5222"/>
<path fill="none" stroke="#8b4513" d="M116.4852,-417.7857C137.1588,-406.2385 164.1369,-390.7472 187.4152,-376 203.8706,-365.5752 205.933,-359.5923 223.4152,-351 238.2475,-343.7101 255.1749,-337.635 270.7356,-332.8508"/>
<polygon fill="#8b4513" stroke="#8b4513" points="272.1325,-336.0875 280.7281,-329.8934 270.146,-329.3753 272.1325,-336.0875"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="node9" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_node9"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).Error | defined in log.go:42">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M339.0876,-399C339.0876,-399 303.555,-399 303.555,-399 297.555,-399 291.555,-393 291.555,-387 291.555,-387 291.555,-375 291.555,-375 291.555,-369 297.555,-363 303.555,-363 303.555,-363 339.0876,-363 339.0876,-363 345.0876,-363 351.0876,-369 351.0876,-375 351.0876,-375 351.0876,-387 351.0876,-387 351.0876,-393 345.0876,-399 339.0876,-399"/>
<text text-anchor="middle" x="321.3213" y="-385.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="321.3213" y="-368.4" font-family="Verdana" font-size="14.00" fill="#000000">Error</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="edge10" class="edge">
<g id="edge2" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_edge10"><a xlink:title="at router_identity.go:62: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at router_identity.go:69: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M108.0521,-283.0879C135.7079,-302.9666 181.9738,-335.4661 223.4152,-361 242.4141,-372.7061 264.0933,-384.7882 282.2141,-394.548"/>
<polygon fill="#8b4513" stroke="#8b4513" points="280.8642,-397.7952 291.3328,-399.4258 284.1659,-391.6227 280.8642,-397.7952"/>
<g id="a_edge2"><a xlink:title="at router_identity.go:62: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at router_identity.go:69: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M149.5355,-420.6794C191.8686,-410.9012 245.3477,-398.5485 281.2958,-390.2452"/>
<polygon fill="#8b4513" stroke="#8b4513" points="282.4456,-393.5718 291.4014,-387.911 280.8702,-386.7514 282.4456,-393.5718"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="node10" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_node10"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).WithFields | defined in log.go:60">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M352.5404,-460C352.5404,-460 290.1022,-460 290.1022,-460 284.1022,-460 278.1022,-454 278.1022,-448 278.1022,-448 278.1022,-436 278.1022,-436 278.1022,-430 284.1022,-424 290.1022,-424 290.1022,-424 352.5404,-424 352.5404,-424 358.5404,-424 364.5404,-430 364.5404,-436 364.5404,-436 364.5404,-448 364.5404,-448 364.5404,-454 358.5404,-460 352.5404,-460"/>
<text text-anchor="middle" x="321.3213" y="-446.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="321.3213" y="-429.4" font-family="Verdana" font-size="14.00" fill="#000000">WithFields</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge8" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge8"><a xlink:title="at router_identity.go:78: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M149.5355,-437.6713C186.8588,-438.6118 232.846,-439.7706 267.8442,-440.6525"/>
<polygon fill="#8b4513" stroke="#8b4513" points="267.7832,-444.152 277.8683,-440.9051 267.9596,-437.1542 267.7832,-444.152"/>
</a>
</g>
</g>
<!-- (*github.com/sirupsen/logrus.Logger).Debug -->
<g id="node11" class="node">
<title>(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_node11"><a xlink:title="(*github.com/sirupsen/logrus.Logger).Debug | defined in logger.go:221">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M340.1433,-252C340.1433,-252 302.4993,-252 302.4993,-252 296.4993,-252 290.4993,-246 290.4993,-240 290.4993,-240 290.4993,-228 290.4993,-228 290.4993,-222 296.4993,-216 302.4993,-216 302.4993,-216 340.1433,-216 340.1433,-216 346.1433,-216 352.1433,-222 352.1433,-228 352.1433,-228 352.1433,-240 352.1433,-240 352.1433,-246 346.1433,-252 340.1433,-252"/>
<text text-anchor="middle" x="321.3213" y="-238.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
<text text-anchor="middle" x="321.3213" y="-221.4" font-family="Verdana" font-size="14.00" fill="#000000">Debug</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge3" class="edge">
<g id="edge1" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge3"><a xlink:title="at router_identity.go:56: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at router_identity.go:82: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M140.2538,-283.0755C165.6054,-290.8525 195.8835,-299.7925 223.4152,-307 242.012,-311.8684 262.7669,-316.6273 280.3645,-320.4665"/>
<polygon fill="#8b4513" stroke="#8b4513" points="279.8074,-323.9268 290.3206,-322.6146 281.2837,-317.0842 279.8074,-323.9268"/>
<g id="a_edge1"><a xlink:title="at router_identity.go:56: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at router_identity.go:82: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M111.7057,-417.9393C134.7308,-402.1267 166.6206,-377.297 187.4152,-349 212.1952,-315.2796 192.1907,-289.8594 223.4152,-262 239.0699,-248.0324 261.2498,-240.9976 280.5411,-237.4695"/>
<polygon fill="#8b4513" stroke="#8b4513" points="281.2727,-240.8976 290.6079,-235.8872 280.1857,-233.9825 281.2727,-240.8976"/>
</a>
</g>
</g>
@ -257,18 +165,18 @@
<g id="node12" class="node">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType</title>
<g id="a_node12"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType | defined in key_certificate.go:126">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M365.1882,-86C365.1882,-86 277.4544,-86 277.4544,-86 271.4544,-86 265.4544,-80 265.4544,-74 265.4544,-74 265.4544,-62 265.4544,-62 265.4544,-56 271.4544,-50 277.4544,-50 277.4544,-50 365.1882,-50 365.1882,-50 371.1882,-50 377.1882,-56 377.1882,-62 377.1882,-62 377.1882,-74 377.1882,-74 377.1882,-80 371.1882,-86 365.1882,-86"/>
<text text-anchor="middle" x="321.3213" y="-72.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
<text text-anchor="middle" x="321.3213" y="-55.4" font-family="Verdana" font-size="14.00" fill="#000000">PublicKeyType</text>
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M365.1882,-660C365.1882,-660 277.4544,-660 277.4544,-660 271.4544,-660 265.4544,-654 265.4544,-648 265.4544,-648 265.4544,-636 265.4544,-636 265.4544,-630 271.4544,-624 277.4544,-624 277.4544,-624 365.1882,-624 365.1882,-624 371.1882,-624 377.1882,-630 377.1882,-636 377.1882,-636 377.1882,-648 377.1882,-648 377.1882,-654 371.1882,-660 365.1882,-660"/>
<text text-anchor="middle" x="321.3213" y="-646.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
<text text-anchor="middle" x="321.3213" y="-629.4" font-family="Verdana" font-size="14.00" fill="#000000">PublicKeyType</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType -->
<g id="edge7" class="edge">
<g id="edge12" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType</title>
<g id="a_edge7"><a xlink:title="at router_identity.go:79: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType]">
<path fill="none" stroke="#8b4513" d="M93.6553,-246.8619C114.1629,-212.8463 162.9947,-139.2833 223.4152,-99 233.2083,-92.4708 244.4613,-87.2475 255.77,-83.0909"/>
<polygon fill="#8b4513" stroke="#8b4513" points="256.9242,-86.3952 265.2515,-79.8449 254.6569,-79.7725 256.9242,-86.3952"/>
<g id="a_edge12"><a xlink:title="at router_identity.go:79: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).PublicKeyType]">
<path fill="none" stroke="#8b4513" d="M92.7203,-454.1885C112.3033,-489.86 160.6058,-569.2395 223.4152,-612 233.1738,-618.6437 244.4576,-623.8592 255.8186,-627.9406"/>
<polygon fill="#8b4513" stroke="#8b4513" points="254.7548,-631.2752 265.3483,-631.1086 256.9631,-624.6326 254.7548,-631.2752"/>
</a>
</g>
</g>
@ -276,18 +184,110 @@
<g id="node13" class="node">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType</title>
<g id="a_node13"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType | defined in key_certificate.go:117">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M387.2525,-147C387.2525,-147 255.3901,-147 255.3901,-147 249.3901,-147 243.3901,-141 243.3901,-135 243.3901,-135 243.3901,-123 243.3901,-123 243.3901,-117 249.3901,-111 255.3901,-111 255.3901,-111 387.2525,-111 387.2525,-111 393.2525,-111 399.2525,-117 399.2525,-123 399.2525,-123 399.2525,-135 399.2525,-135 399.2525,-141 393.2525,-147 387.2525,-147"/>
<text text-anchor="middle" x="321.3213" y="-133.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
<text text-anchor="middle" x="321.3213" y="-116.4" font-family="Verdana" font-size="14.00" fill="#000000">SigningPublicKeyType</text>
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M387.2525,-599C387.2525,-599 255.3901,-599 255.3901,-599 249.3901,-599 243.3901,-593 243.3901,-587 243.3901,-587 243.3901,-575 243.3901,-575 243.3901,-569 249.3901,-563 255.3901,-563 255.3901,-563 387.2525,-563 387.2525,-563 393.2525,-563 399.2525,-569 399.2525,-575 399.2525,-575 399.2525,-587 399.2525,-587 399.2525,-593 393.2525,-599 387.2525,-599"/>
<text text-anchor="middle" x="321.3213" y="-585.2" font-family="Verdana" font-size="14.00" fill="#000000">key_certificate</text>
<text text-anchor="middle" x="321.3213" y="-568.4" font-family="Verdana" font-size="14.00" fill="#000000">SigningPublicKeyType</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType -->
<g id="edge14" class="edge">
<g id="edge3" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType</title>
<g id="a_edge14"><a xlink:title="at router_identity.go:80: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType]">
<path fill="none" stroke="#8b4513" d="M99.9188,-246.9185C124.4754,-221.4855 172.8945,-175.5196 223.4152,-151 226.7874,-149.3634 230.2842,-147.8464 233.8611,-146.4406"/>
<polygon fill="#8b4513" stroke="#8b4513" points="235.2636,-149.6556 243.4852,-142.9732 232.8908,-143.07 235.2636,-149.6556"/>
<g id="a_edge3"><a xlink:title="at router_identity.go:80: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SigningPublicKeyType]">
<path fill="none" stroke="#8b4513" d="M98.4136,-454.1929C122.1823,-481.3843 170.8877,-532.2799 223.4152,-559 226.7561,-560.6995 230.227,-562.2687 233.7825,-563.7175"/>
<polygon fill="#8b4513" stroke="#8b4513" points="232.7674,-567.0741 243.3602,-567.2784 235.2067,-560.5129 232.7674,-567.0741"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity -->
<g id="node4" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity</title>
<g id="a_node4"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity | defined in router_identity.go:37&#10;at router_identity.go:43: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at router_identity.go:38: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at router_identity.go:49: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at router_identity.go:40: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at router_identity.go:51: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at router_identity.go:41: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert]&#10;at router_identity.go:43: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M138.6234,-279C138.6234,-279 27.7918,-279 27.7918,-279 21.7918,-279 15.7918,-273 15.7918,-267 15.7918,-267 15.7918,-255 15.7918,-255 15.7918,-249 21.7918,-243 27.7918,-243 27.7918,-243 138.6234,-243 138.6234,-243 144.6234,-243 150.6234,-249 150.6234,-255 150.6234,-255 150.6234,-267 150.6234,-267 150.6234,-273 144.6234,-279 138.6234,-279"/>
<text text-anchor="middle" x="83.2076" y="-256.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadRouterIdentity</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert -->
<g id="node5" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert</title>
<g id="a_node5"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert | defined in keys_and_cert.go:142">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M374.0622,-113C374.0622,-113 268.5804,-113 268.5804,-113 262.5804,-113 256.5804,-107 256.5804,-101 256.5804,-101 256.5804,-89 256.5804,-89 256.5804,-83 262.5804,-77 268.5804,-77 268.5804,-77 374.0622,-77 374.0622,-77 380.0622,-77 386.0622,-83 386.0622,-89 386.0622,-89 386.0622,-101 386.0622,-101 386.0622,-107 380.0622,-113 374.0622,-113"/>
<text text-anchor="middle" x="321.3213" y="-99.2" font-family="Verdana" font-size="14.00" fill="#000000">keys_and_cert</text>
<text text-anchor="middle" x="321.3213" y="-82.4" font-family="Verdana" font-size="14.00" fill="#000000">ReadKeysAndCert</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert -->
<g id="edge13" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert</title>
<g id="a_edge13"><a xlink:title="at router_identity.go:41: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/keys_and_cert.ReadKeysAndCert]">
<path fill="none" stroke="#8b4513" d="M97.1813,-242.9816C120.3918,-214.2268 169.6868,-157.9557 223.4152,-126 230.8191,-121.5964 238.9158,-117.7508 247.18,-114.4094"/>
<polygon fill="#8b4513" stroke="#8b4513" points="248.4486,-117.6716 256.5537,-110.8483 245.9626,-111.1279 248.4486,-117.6716"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError -->
<g id="edge14" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError</title>
<g id="a_edge14"><a xlink:title="at router_identity.go:43: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="none" stroke="#8b4513" d="M150.6747,-272.9895C162.9436,-275.4418 175.5953,-278.1511 187.4152,-281 215.2616,-287.7117 245.966,-296.5483 270.9409,-304.1128"/>
<polygon fill="#8b4513" stroke="#8b4513" points="269.9775,-307.4781 280.5637,-307.05 272.0211,-300.783 269.9775,-307.4781"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="edge4" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_edge4"><a xlink:title="at router_identity.go:43: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M135.3161,-279.0682C152.8203,-286.5087 171.8377,-296.1889 187.4152,-308 207.2762,-323.059 202.6429,-337.2252 223.4152,-351 240.6666,-362.44 262.4792,-369.6796 281.1349,-374.1732"/>
<polygon fill="#8b4513" stroke="#8b4513" points="280.6039,-377.6405 291.1254,-376.3963 282.1244,-370.8077 280.6039,-377.6405"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge9" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge9"><a xlink:title="at router_identity.go:38: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at router_identity.go:49: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M95.2196,-279.2363C117.0066,-310.9004 166.1264,-376.0918 223.4152,-412 236.8839,-420.4421 252.8878,-426.6467 268.0129,-431.147"/>
<polygon fill="#8b4513" stroke="#8b4513" points="267.2179,-434.5586 277.7899,-433.8646 269.0926,-427.8143 267.2179,-434.5586"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge10" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.ReadRouterIdentity&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge10"><a xlink:title="at router_identity.go:40: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at router_identity.go:51: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M150.4867,-253.3711C192.2932,-248.6306 244.6786,-242.6906 280.343,-238.6466"/>
<polygon fill="#8b4513" stroke="#8b4513" points="280.8476,-242.1119 290.3895,-237.5074 280.0588,-235.1565 280.8476,-242.1119"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.init -->
<g id="node6" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.init</title>
<g id="a_node6"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.init | defined in .:0&#10;at router_identity.go:14: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M98.2076,-52C98.2076,-52 68.2076,-52 68.2076,-52 62.2076,-52 56.2076,-46 56.2076,-40 56.2076,-40 56.2076,-28 56.2076,-28 56.2076,-22 62.2076,-16 68.2076,-16 68.2076,-16 98.2076,-16 98.2076,-16 104.2076,-16 110.2076,-22 110.2076,-28 110.2076,-28 110.2076,-40 110.2076,-40 110.2076,-46 104.2076,-52 98.2076,-52"/>
<text text-anchor="middle" x="83.2076" y="-29.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="node7" class="node">
<title>github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_node7"><a xlink:title="github.com/go&#45;i2p/logger.GetGoI2PLogger | defined in log.go:120">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M370.0108,-52C370.0108,-52 272.6318,-52 272.6318,-52 266.6318,-52 260.6318,-46 260.6318,-40 260.6318,-40 260.6318,-28 260.6318,-28 260.6318,-22 266.6318,-16 272.6318,-16 272.6318,-16 370.0108,-16 370.0108,-16 376.0108,-16 382.0108,-22 382.0108,-28 382.0108,-28 382.0108,-40 382.0108,-40 382.0108,-46 376.0108,-52 370.0108,-52"/>
<text text-anchor="middle" x="321.3213" y="-38.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="321.3213" y="-21.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="edge6" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_edge6"><a xlink:title="at router_identity.go:14: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="none" stroke="#8b4513" d="M110.5223,-34C144.4368,-34 203.5523,-34 250.5669,-34"/>
<polygon fill="#8b4513" stroke="#8b4513" points="250.7058,-37.5001 260.7058,-34 250.7058,-30.5001 250.7058,-37.5001"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/common/router_info"
![router_info.svg](router_info)
![router_info.svg](router_info.svg)
Package router_info implements the I2P RouterInfo common data structure

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 147 KiB

After

Width:  |  Height:  |  Size: 148 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/common/session_key"
![session_key.svg](session_key)
![session_key.svg](session_key.svg)
Package session_key implements the I2P SessionKey common data structure

View File

@ -42,9 +42,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/session_key.ReadSessionKey&#45;&gt;github.com/sirupsen/logrus.Warn -->
<g id="edge1" class="edge">
<g id="edge7" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_key.ReadSessionKey&#45;&gt;github.com/sirupsen/logrus.Warn</title>
<g id="a_edge1"><a xlink:title="at session_key.go:27: calling [github.com/sirupsen/logrus.Warn]">
<g id="a_edge7"><a xlink:title="at session_key.go:27: calling [github.com/sirupsen/logrus.Warn]">
<path fill="none" stroke="#8b4513" d="M324.3352,-34C345.2029,-34 368.1346,-34 387.0117,-34"/>
<polygon fill="#8b4513" stroke="#8b4513" points="387.0431,-37.5001 397.043,-34 387.043,-30.5001 387.0431,-37.5001"/>
</a>
@ -60,9 +60,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/session_key.NewSessionKey&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/session_key.ReadSessionKey -->
<g id="edge4" class="edge">
<g id="edge3" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_key.NewSessionKey&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/session_key.ReadSessionKey</title>
<g id="a_edge4"><a xlink:title="at session_key.go:35: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/session_key.ReadSessionKey]">
<g id="a_edge3"><a xlink:title="at session_key.go:35: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/session_key.ReadSessionKey]">
<path fill="none" stroke="#000000" d="M90.8252,-167.9829C114.5635,-142.8336 160.3942,-96.7292 205.526,-65 209.4263,-62.258 213.6003,-59.5997 217.8606,-57.0685"/>
<polygon fill="#000000" stroke="#000000" points="219.7007,-60.0485 226.6664,-52.0653 216.2427,-53.9622 219.7007,-60.0485"/>
</a>
@ -79,9 +79,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/session_key.NewSessionKey&#45;&gt;github.com/sirupsen/logrus.WithField -->
<g id="edge2" class="edge">
<g id="edge1" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_key.NewSessionKey&#45;&gt;github.com/sirupsen/logrus.WithField</title>
<g id="a_edge2"><a xlink:title="at session_key.go:34: calling [github.com/sirupsen/logrus.WithField]">
<g id="a_edge1"><a xlink:title="at session_key.go:34: calling [github.com/sirupsen/logrus.WithField]">
<path fill="none" stroke="#8b4513" d="M112.3947,-167.8035C142.7648,-153.3108 185.4246,-132.9535 217.9151,-117.449"/>
<polygon fill="#8b4513" stroke="#8b4513" points="219.7002,-120.4753 227.2178,-113.0097 216.6854,-114.1577 219.7002,-120.4753"/>
</a>
@ -98,9 +98,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/session_key.NewSessionKey&#45;&gt;github.com/sirupsen/logrus.WithError -->
<g id="edge5" class="edge">
<g id="edge4" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_key.NewSessionKey&#45;&gt;github.com/sirupsen/logrus.WithError</title>
<g id="a_edge5"><a xlink:title="at session_key.go:37: calling [github.com/sirupsen/logrus.WithError]">
<g id="a_edge4"><a xlink:title="at session_key.go:37: calling [github.com/sirupsen/logrus.WithError]">
<path fill="none" stroke="#8b4513" d="M132.514,-176.836C158.6025,-172.7318 189.0807,-167.937 214.2186,-163.9823"/>
<polygon fill="#8b4513" stroke="#8b4513" points="214.9448,-167.4112 224.2794,-162.3995 213.8569,-160.4962 214.9448,-167.4112"/>
</a>
@ -117,9 +117,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/session_key.NewSessionKey&#45;&gt;github.com/sirupsen/logrus.Debug -->
<g id="edge7" class="edge">
<g id="edge6" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_key.NewSessionKey&#45;&gt;github.com/sirupsen/logrus.Debug</title>
<g id="a_edge7"><a xlink:title="at session_key.go:41: calling [github.com/sirupsen/logrus.Debug]">
<g id="a_edge6"><a xlink:title="at session_key.go:41: calling [github.com/sirupsen/logrus.Debug]">
<path fill="none" stroke="#8b4513" d="M132.514,-195.4695C162.1028,-200.2795 197.3383,-206.0075 224.025,-210.3458"/>
<polygon fill="#8b4513" stroke="#8b4513" points="223.7352,-213.8446 234.1673,-211.9946 224.8585,-206.9353 223.7352,-213.8446"/>
</a>
@ -136,9 +136,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/session_key.NewSessionKey&#45;&gt;(*github.com/sirupsen/logrus.Entry).Debug -->
<g id="edge3" class="edge">
<g id="edge2" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_key.NewSessionKey&#45;&gt;(*github.com/sirupsen/logrus.Entry).Debug</title>
<g id="a_edge3"><a xlink:title="at session_key.go:34: calling [(*github.com/sirupsen/logrus.Entry).Debug]">
<g id="a_edge2"><a xlink:title="at session_key.go:34: calling [(*github.com/sirupsen/logrus.Entry).Debug]">
<path fill="none" stroke="#8b4513" d="M97.9151,-204.1135C123.4419,-223.0678 165.7928,-252.8208 205.526,-273 211.5896,-276.0795 218.19,-278.9545 224.7143,-281.5442"/>
<polygon fill="#8b4513" stroke="#8b4513" points="223.5564,-284.8483 234.1476,-285.1249 226.0405,-278.3039 223.5564,-284.8483"/>
</a>
@ -155,9 +155,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/session_key.NewSessionKey&#45;&gt;(*github.com/sirupsen/logrus.Entry).Error -->
<g id="edge6" class="edge">
<g id="edge5" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_key.NewSessionKey&#45;&gt;(*github.com/sirupsen/logrus.Entry).Error</title>
<g id="a_edge6"><a xlink:title="at session_key.go:37: calling [(*github.com/sirupsen/logrus.Entry).Error]">
<g id="a_edge5"><a xlink:title="at session_key.go:37: calling [(*github.com/sirupsen/logrus.Entry).Error]">
<path fill="none" stroke="#8b4513" d="M87.925,-204.2759C110.108,-233.0122 156.4463,-289.2647 205.526,-326 211.902,-330.7723 219.1515,-335.1491 226.3422,-338.9974"/>
<polygon fill="#8b4513" stroke="#8b4513" points="224.849,-342.1646 235.349,-343.5794 228.023,-335.9256 224.849,-342.1646"/>
</a>

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/common/session_tag"
![session_tag.svg](session_tag)
![session_tag.svg](session_tag.svg)
Package session_tag implements the I2P SessionTag common data structure

View File

@ -17,8 +17,8 @@
<g id="clust3" class="cluster">
<title>cluster_*github.com/sirupsen/logrus.Logger</title>
<g id="a_clust3"><a xlink:title="type: *github.com/sirupsen/logrus.Logger">
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M237.9061,-253C237.9061,-253 292.2273,-253 292.2273,-253 298.2273,-253 304.2273,-259 304.2273,-265 304.2273,-265 304.2273,-319 304.2273,-319 304.2273,-325 298.2273,-331 292.2273,-331 292.2273,-331 237.9061,-331 237.9061,-331 231.9061,-331 225.9061,-325 225.9061,-319 225.9061,-319 225.9061,-265 225.9061,-265 225.9061,-259 231.9061,-253 237.9061,-253"/>
<text text-anchor="middle" x="265.0667" y="-261.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M237.9061,-207C237.9061,-207 292.2273,-207 292.2273,-207 298.2273,-207 304.2273,-213 304.2273,-219 304.2273,-219 304.2273,-273 304.2273,-273 304.2273,-279 298.2273,-285 292.2273,-285 292.2273,-285 237.9061,-285 237.9061,-285 231.9061,-285 225.9061,-279 225.9061,-273 225.9061,-273 225.9061,-219 225.9061,-219 225.9061,-213 231.9061,-207 237.9061,-207"/>
<text text-anchor="middle" x="265.0667" y="-215.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
</a>
</g>
</g>
@ -30,21 +30,68 @@
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.NewSessionTag -->
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.init -->
<g id="node1" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.NewSessionTag</title>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.NewSessionTag | defined in session_tag.go:38&#10;at session_tag.go:46: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at session_tag.go:39: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at session_tag.go:39: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at session_tag.go:48: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at session_tag.go:40: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.ReadSessionTag]&#10;at session_tag.go:42: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at session_tag.go:42: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M118.958,-221C118.958,-221 28.014,-221 28.014,-221 22.014,-221 16.014,-215 16.014,-209 16.014,-209 16.014,-197 16.014,-197 16.014,-191 22.014,-185 28.014,-185 28.014,-185 118.958,-185 118.958,-185 124.958,-185 130.958,-191 130.958,-197 130.958,-197 130.958,-209 130.958,-209 130.958,-215 124.958,-221 118.958,-221"/>
<text text-anchor="middle" x="73.486" y="-198.8" font-family="Verdana" font-size="14.00" fill="#000000">NewSessionTag</text>
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.init</title>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.init | defined in .:0&#10;at session_tag.go:9: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M88.486,-338C88.486,-338 58.486,-338 58.486,-338 52.486,-338 46.486,-332 46.486,-326 46.486,-326 46.486,-314 46.486,-314 46.486,-308 52.486,-302 58.486,-302 58.486,-302 88.486,-302 88.486,-302 94.486,-302 100.486,-308 100.486,-314 100.486,-314 100.486,-326 100.486,-326 100.486,-332 94.486,-338 88.486,-338"/>
<text text-anchor="middle" x="73.486" y="-315.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="node2" class="node">
<title>github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_node2"><a xlink:title="github.com/go&#45;i2p/logger.GetGoI2PLogger | defined in log.go:120">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M313.2562,-338C313.2562,-338 215.8772,-338 215.8772,-338 209.8772,-338 203.8772,-332 203.8772,-326 203.8772,-326 203.8772,-314 203.8772,-314 203.8772,-308 209.8772,-302 215.8772,-302 215.8772,-302 313.2562,-302 313.2562,-302 319.2562,-302 325.2562,-308 325.2562,-314 325.2562,-314 325.2562,-326 325.2562,-326 325.2562,-332 319.2562,-338 313.2562,-338"/>
<text text-anchor="middle" x="264.5667" y="-324.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="264.5667" y="-307.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="edge2" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_edge2"><a xlink:title="at session_tag.go:9: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="none" stroke="#8b4513" d="M100.8632,-320C124.9805,-320 161.1891,-320 193.4256,-320"/>
<polygon fill="#8b4513" stroke="#8b4513" points="193.7322,-323.5001 203.7321,-320 193.7321,-316.5001 193.7322,-323.5001"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.ReadSessionTag -->
<g id="node2" class="node">
<g id="node3" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.ReadSessionTag</title>
<g id="a_node2"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.ReadSessionTag | defined in session_tag.go:30&#10;at session_tag.go:32: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M311.3771,-128C311.3771,-128 217.7563,-128 217.7563,-128 211.7563,-128 205.7563,-122 205.7563,-116 205.7563,-116 205.7563,-104 205.7563,-104 205.7563,-98 211.7563,-92 217.7563,-92 217.7563,-92 311.3771,-92 311.3771,-92 317.3771,-92 323.3771,-98 323.3771,-104 323.3771,-104 323.3771,-116 323.3771,-116 323.3771,-122 317.3771,-128 311.3771,-128"/>
<text text-anchor="middle" x="264.5667" y="-105.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadSessionTag</text>
<g id="a_node3"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.ReadSessionTag | defined in session_tag.go:30&#10;at session_tag.go:32: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M311.3771,-89C311.3771,-89 217.7563,-89 217.7563,-89 211.7563,-89 205.7563,-83 205.7563,-77 205.7563,-77 205.7563,-65 205.7563,-65 205.7563,-59 211.7563,-53 217.7563,-53 217.7563,-53 311.3771,-53 311.3771,-53 317.3771,-53 323.3771,-59 323.3771,-65 323.3771,-65 323.3771,-77 323.3771,-77 323.3771,-83 317.3771,-89 311.3771,-89"/>
<text text-anchor="middle" x="264.5667" y="-66.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadSessionTag</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/logger.Logger).Warn -->
<g id="node5" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).Warn</title>
<g id="a_node5"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).Warn | defined in log.go:30">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M459.0371,-86C459.0371,-86 423.5045,-86 423.5045,-86 417.5045,-86 411.5045,-80 411.5045,-74 411.5045,-74 411.5045,-62 411.5045,-62 411.5045,-56 417.5045,-50 423.5045,-50 423.5045,-50 459.0371,-50 459.0371,-50 465.0371,-50 471.0371,-56 471.0371,-62 471.0371,-62 471.0371,-74 471.0371,-74 471.0371,-80 465.0371,-86 459.0371,-86"/>
<text text-anchor="middle" x="441.2708" y="-72.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="441.2708" y="-55.4" font-family="Verdana" font-size="14.00" fill="#000000">Warn</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.ReadSessionTag&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warn -->
<g id="edge3" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.ReadSessionTag&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warn</title>
<g id="a_edge3"><a xlink:title="at session_tag.go:32: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]">
<path fill="none" stroke="#8b4513" d="M323.4066,-70.001C349.0032,-69.5665 378.3334,-69.0685 401.332,-68.6781"/>
<polygon fill="#8b4513" stroke="#8b4513" points="401.4781,-72.1762 411.4172,-68.5068 401.3592,-65.1772 401.4781,-72.1762"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.NewSessionTag -->
<g id="node4" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.NewSessionTag</title>
<g id="a_node4"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.NewSessionTag | defined in session_tag.go:38&#10;at session_tag.go:46: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at session_tag.go:39: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at session_tag.go:39: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at session_tag.go:48: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at session_tag.go:40: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.ReadSessionTag]&#10;at session_tag.go:42: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at session_tag.go:42: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M118.958,-175C118.958,-175 28.014,-175 28.014,-175 22.014,-175 16.014,-169 16.014,-163 16.014,-163 16.014,-151 16.014,-151 16.014,-145 22.014,-139 28.014,-139 28.014,-139 118.958,-139 118.958,-139 124.958,-139 130.958,-145 130.958,-151 130.958,-151 130.958,-163 130.958,-163 130.958,-169 124.958,-175 118.958,-175"/>
<text text-anchor="middle" x="73.486" y="-152.8" font-family="Verdana" font-size="14.00" fill="#000000">NewSessionTag</text>
</a>
</g>
</g>
@ -52,15 +99,15 @@
<g id="edge6" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.NewSessionTag&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.ReadSessionTag</title>
<g id="a_edge6"><a xlink:title="at session_tag.go:40: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.ReadSessionTag]">
<path fill="none" stroke="#000000" d="M106.0521,-184.7968C123.8767,-175.0334 146.4515,-162.9903 166.972,-153 181.4472,-145.9528 197.3486,-138.732 212.0373,-132.2686"/>
<polygon fill="#000000" stroke="#000000" points="213.725,-135.3508 221.4875,-128.1401 210.9226,-128.9362 213.725,-135.3508"/>
<path fill="none" stroke="#000000" d="M107.7754,-138.8764C125.3106,-129.8351 147.0943,-118.9486 166.972,-110 179.9588,-104.1535 194.099,-98.2467 207.4821,-92.8597"/>
<polygon fill="#000000" stroke="#000000" points="209.074,-95.9929 217.0659,-89.0373 206.4808,-89.491 209.074,-95.9929"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/logger.Logger).WithField -->
<g id="node5" class="node">
<g id="node6" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).WithField</title>
<g id="a_node5"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).WithField | defined in log.go:54">
<g id="a_node6"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).WithField | defined in log.go:54">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M469.5453,-147C469.5453,-147 412.9963,-147 412.9963,-147 406.9963,-147 400.9963,-141 400.9963,-135 400.9963,-135 400.9963,-123 400.9963,-123 400.9963,-117 406.9963,-111 412.9963,-111 412.9963,-111 469.5453,-111 469.5453,-111 475.5453,-111 481.5453,-117 481.5453,-123 481.5453,-123 481.5453,-135 481.5453,-135 481.5453,-141 475.5453,-147 469.5453,-147"/>
<text text-anchor="middle" x="441.2708" y="-133.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="441.2708" y="-116.4" font-family="Verdana" font-size="14.00" fill="#000000">WithField</text>
@ -68,11 +115,11 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.NewSessionTag&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField -->
<g id="edge3" class="edge">
<g id="edge4" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.NewSessionTag&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField</title>
<g id="a_edge3"><a xlink:title="at session_tag.go:39: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="none" stroke="#8b4513" d="M131.357,-191.3561C202.7426,-176.993 322.9463,-152.8074 390.7638,-139.1622"/>
<polygon fill="#8b4513" stroke="#8b4513" points="391.667,-142.5507 400.7801,-137.1469 390.2862,-135.6883 391.667,-142.5507"/>
<g id="a_edge4"><a xlink:title="at session_tag.go:39: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="none" stroke="#8b4513" d="M131.0584,-142.9712C142.8716,-140.5766 155.2725,-138.4102 166.972,-137 244.5117,-127.6536 335.2259,-126.9969 390.4445,-127.7334"/>
<polygon fill="#8b4513" stroke="#8b4513" points="390.6126,-131.2363 400.6655,-127.8912 390.7207,-124.2372 390.6126,-131.2363"/>
</a>
</g>
</g>
@ -90,8 +137,8 @@
<g id="edge7" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.NewSessionTag&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError</title>
<g id="a_edge7"><a xlink:title="at session_tag.go:42: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="none" stroke="#8b4513" d="M131.357,-200.9544C202.6464,-198.4346 322.6224,-194.1938 390.4893,-191.795"/>
<polygon fill="#8b4513" stroke="#8b4513" points="390.6454,-195.2917 400.5155,-191.4406 390.3981,-188.2961 390.6454,-195.2917"/>
<path fill="none" stroke="#8b4513" d="M131.2039,-153.4715C189.8248,-151.0372 282.9951,-150.338 362.1614,-164 371.5718,-165.624 381.3929,-168.1409 390.7862,-170.9819"/>
<polygon fill="#8b4513" stroke="#8b4513" points="389.7944,-174.3392 400.3849,-174.0359 391.9168,-167.6687 389.7944,-174.3392"/>
</a>
</g>
</g>
@ -109,8 +156,8 @@
<g id="edge8" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.NewSessionTag&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_edge8"><a xlink:title="at session_tag.go:42: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M131.1251,-208.7956C189.4872,-214.897 282.2809,-225.2377 362.1614,-237 374.8823,-238.8731 388.7001,-241.2127 401.1752,-243.4398"/>
<polygon fill="#8b4513" stroke="#8b4513" points="400.8211,-246.9326 411.2849,-245.2715 402.0691,-240.0447 400.8211,-246.9326"/>
<path fill="none" stroke="#8b4513" d="M130.9975,-159.1129C203.3633,-162.5668 322.9335,-171.1449 362.1614,-191 378.4342,-199.2364 375.9262,-209.5982 390.1614,-221 394.1252,-224.1748 398.4605,-227.2407 402.8767,-230.1215"/>
<polygon fill="#8b4513" stroke="#8b4513" points="401.0515,-233.108 411.3925,-235.4135 404.7463,-227.1625 401.0515,-233.108"/>
</a>
</g>
</g>
@ -128,8 +175,8 @@
<g id="edge1" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.NewSessionTag&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge1"><a xlink:title="at session_tag.go:46: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M131.1401,-216.2015C153.7818,-221.1681 180.0345,-226.6586 203.972,-231 257.5508,-240.7172 273.5123,-231.7524 325.1614,-249 340.6011,-254.1559 374.6188,-272.9648 401.864,-288.7001"/>
<polygon fill="#8b4513" stroke="#8b4513" points="400.4022,-291.8986 410.8074,-293.8944 403.9179,-285.8454 400.4022,-291.8986"/>
<path fill="none" stroke="#8b4513" d="M131.2291,-166.525C202.9067,-178.5 316.8096,-198.0892 325.1614,-203 364.3561,-226.0464 355.5781,-252.4814 390.1614,-282 392.6656,-284.1375 395.3424,-286.2094 398.1094,-288.1986"/>
<polygon fill="#8b4513" stroke="#8b4513" points="396.3464,-291.2306 406.599,-293.9015 400.2497,-285.4199 396.3464,-291.2306"/>
</a>
</g>
</g>
@ -137,65 +184,18 @@
<g id="node10" class="node">
<title>(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_node10"><a xlink:title="(*github.com/sirupsen/logrus.Logger).Debug | defined in logger.go:221">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M283.3887,-323C283.3887,-323 245.7447,-323 245.7447,-323 239.7447,-323 233.7447,-317 233.7447,-311 233.7447,-311 233.7447,-299 233.7447,-299 233.7447,-293 239.7447,-287 245.7447,-287 245.7447,-287 283.3887,-287 283.3887,-287 289.3887,-287 295.3887,-293 295.3887,-299 295.3887,-299 295.3887,-311 295.3887,-311 295.3887,-317 289.3887,-323 283.3887,-323"/>
<text text-anchor="middle" x="264.5667" y="-309.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
<text text-anchor="middle" x="264.5667" y="-292.4" font-family="Verdana" font-size="14.00" fill="#000000">Debug</text>
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M283.3887,-277C283.3887,-277 245.7447,-277 245.7447,-277 239.7447,-277 233.7447,-271 233.7447,-265 233.7447,-265 233.7447,-253 233.7447,-253 233.7447,-247 239.7447,-241 245.7447,-241 245.7447,-241 283.3887,-241 283.3887,-241 289.3887,-241 295.3887,-247 295.3887,-253 295.3887,-253 295.3887,-265 295.3887,-265 295.3887,-271 289.3887,-277 283.3887,-277"/>
<text text-anchor="middle" x="264.5667" y="-263.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
<text text-anchor="middle" x="264.5667" y="-246.4" font-family="Verdana" font-size="14.00" fill="#000000">Debug</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.NewSessionTag&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge4" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.NewSessionTag&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge4"><a xlink:title="at session_tag.go:39: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at session_tag.go:48: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M99.5846,-221.1809C125.3107,-238.5699 166.1513,-264.7711 203.972,-283 210.3393,-286.0689 217.2529,-288.9626 224.0558,-291.5807"/>
<polygon fill="#8b4513" stroke="#8b4513" points="223.2736,-295.0231 233.8669,-295.2077 225.7009,-288.4573 223.2736,-295.0231"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/logger.Logger).Warn -->
<g id="node6" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).Warn</title>
<g id="a_node6"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).Warn | defined in log.go:30">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M459.0371,-86C459.0371,-86 423.5045,-86 423.5045,-86 417.5045,-86 411.5045,-80 411.5045,-74 411.5045,-74 411.5045,-62 411.5045,-62 411.5045,-56 417.5045,-50 423.5045,-50 423.5045,-50 459.0371,-50 459.0371,-50 465.0371,-50 471.0371,-56 471.0371,-62 471.0371,-62 471.0371,-74 471.0371,-74 471.0371,-80 465.0371,-86 459.0371,-86"/>
<text text-anchor="middle" x="441.2708" y="-72.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="441.2708" y="-55.4" font-family="Verdana" font-size="14.00" fill="#000000">Warn</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.ReadSessionTag&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warn -->
<g id="edge5" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.ReadSessionTag&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warn</title>
<g id="a_edge5"><a xlink:title="at session_tag.go:32: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]">
<path fill="none" stroke="#8b4513" d="M323.4066,-96.0146C349.1185,-89.9033 378.5977,-82.8965 401.6424,-77.4191"/>
<polygon fill="#8b4513" stroke="#8b4513" points="402.4976,-80.8134 411.4172,-75.0958 400.8788,-74.0031 402.4976,-80.8134"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.init -->
<g id="node3" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.init</title>
<g id="a_node3"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.init | defined in .:0&#10;at session_tag.go:9: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M88.486,-55C88.486,-55 58.486,-55 58.486,-55 52.486,-55 46.486,-49 46.486,-43 46.486,-43 46.486,-31 46.486,-31 46.486,-25 52.486,-19 58.486,-19 58.486,-19 88.486,-19 88.486,-19 94.486,-19 100.486,-25 100.486,-31 100.486,-31 100.486,-43 100.486,-43 100.486,-49 94.486,-55 88.486,-55"/>
<text text-anchor="middle" x="73.486" y="-32.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="node4" class="node">
<title>github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_node4"><a xlink:title="github.com/go&#45;i2p/logger.GetGoI2PLogger | defined in log.go:120">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M313.2562,-55C313.2562,-55 215.8772,-55 215.8772,-55 209.8772,-55 203.8772,-49 203.8772,-43 203.8772,-43 203.8772,-31 203.8772,-31 203.8772,-25 209.8772,-19 215.8772,-19 215.8772,-19 313.2562,-19 313.2562,-19 319.2562,-19 325.2562,-25 325.2562,-31 325.2562,-31 325.2562,-43 325.2562,-43 325.2562,-49 319.2562,-55 313.2562,-55"/>
<text text-anchor="middle" x="264.5667" y="-41.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="264.5667" y="-24.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="edge2" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_edge2"><a xlink:title="at session_tag.go:9: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="none" stroke="#8b4513" d="M100.8632,-37C124.9805,-37 161.1891,-37 193.4256,-37"/>
<polygon fill="#8b4513" stroke="#8b4513" points="193.7322,-40.5001 203.7321,-37 193.7321,-33.5001 193.7322,-40.5001"/>
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/session_tag.NewSessionTag&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge5"><a xlink:title="at session_tag.go:39: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at session_tag.go:48: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M99.5846,-175.1809C125.3107,-192.5699 166.1513,-218.7711 203.972,-237 210.3393,-240.0689 217.2529,-242.9626 224.0558,-245.5807"/>
<polygon fill="#8b4513" stroke="#8b4513" points="223.2736,-249.0231 233.8669,-249.2077 225.7009,-242.4573 223.2736,-249.0231"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/common/signature"
![signature.svg](signature)
![signature.svg](signature.svg)
Package signature implements the I2P Signature common data structure

View File

@ -17,8 +17,8 @@
<g id="clust3" class="cluster">
<title>cluster_*github.com/sirupsen/logrus.Logger</title>
<g id="a_clust3"><a xlink:title="type: *github.com/sirupsen/logrus.Logger">
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M227.0155,-243C227.0155,-243 281.3367,-243 281.3367,-243 287.3367,-243 293.3367,-249 293.3367,-255 293.3367,-255 293.3367,-309 293.3367,-309 293.3367,-315 287.3367,-321 281.3367,-321 281.3367,-321 227.0155,-321 227.0155,-321 221.0155,-321 215.0155,-315 215.0155,-309 215.0155,-309 215.0155,-255 215.0155,-255 215.0155,-249 221.0155,-243 227.0155,-243"/>
<text text-anchor="middle" x="254.1761" y="-251.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M227.0155,-190C227.0155,-190 281.3367,-190 281.3367,-190 287.3367,-190 293.3367,-196 293.3367,-202 293.3367,-202 293.3367,-256 293.3367,-256 293.3367,-262 287.3367,-268 281.3367,-268 281.3367,-268 227.0155,-268 227.0155,-268 221.0155,-268 215.0155,-262 215.0155,-256 215.0155,-256 215.0155,-202 215.0155,-202 215.0155,-196 221.0155,-190 227.0155,-190"/>
<text text-anchor="middle" x="254.1761" y="-198.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
</a>
</g>
</g>
@ -30,30 +30,58 @@
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.NewSignature -->
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.init -->
<g id="node1" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.init</title>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.init | defined in .:0&#10;at signature.go:10: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M83.0407,-321C83.0407,-321 53.0407,-321 53.0407,-321 47.0407,-321 41.0407,-315 41.0407,-309 41.0407,-309 41.0407,-297 41.0407,-297 41.0407,-291 47.0407,-285 53.0407,-285 53.0407,-285 83.0407,-285 83.0407,-285 89.0407,-285 95.0407,-291 95.0407,-297 95.0407,-297 95.0407,-309 95.0407,-309 95.0407,-315 89.0407,-321 83.0407,-321"/>
<text text-anchor="middle" x="68.0407" y="-298.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="node2" class="node">
<title>github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_node2"><a xlink:title="github.com/go&#45;i2p/logger.GetGoI2PLogger | defined in log.go:120">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M302.3656,-321C302.3656,-321 204.9866,-321 204.9866,-321 198.9866,-321 192.9866,-315 192.9866,-309 192.9866,-309 192.9866,-297 192.9866,-297 192.9866,-291 198.9866,-285 204.9866,-285 204.9866,-285 302.3656,-285 302.3656,-285 308.3656,-285 314.3656,-291 314.3656,-297 314.3656,-297 314.3656,-309 314.3656,-309 314.3656,-315 308.3656,-321 302.3656,-321"/>
<text text-anchor="middle" x="253.6761" y="-307.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="253.6761" y="-290.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="edge7" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_edge7"><a xlink:title="at signature.go:10: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="none" stroke="#8b4513" d="M95.4318,-303C118.3566,-303 152.1155,-303 182.5704,-303"/>
<polygon fill="#8b4513" stroke="#8b4513" points="182.7516,-306.5001 192.7515,-303 182.7515,-299.5001 182.7516,-306.5001"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.NewSignature -->
<g id="node3" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.NewSignature</title>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.NewSignature | defined in signature.go:106&#10;at signature.go:107: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at signature.go:108: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.ReadSignature]&#10;at signature.go:114: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at signature.go:107: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at signature.go:117: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at signature.go:110: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at signature.go:110: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M108.1221,-211C108.1221,-211 27.9593,-211 27.9593,-211 21.9593,-211 15.9593,-205 15.9593,-199 15.9593,-199 15.9593,-187 15.9593,-187 15.9593,-181 21.9593,-175 27.9593,-175 27.9593,-175 108.1221,-175 108.1221,-175 114.1221,-175 120.1221,-181 120.1221,-187 120.1221,-187 120.1221,-199 120.1221,-199 120.1221,-205 114.1221,-211 108.1221,-211"/>
<text text-anchor="middle" x="68.0407" y="-188.8" font-family="Verdana" font-size="14.00" fill="#000000">NewSignature</text>
<g id="a_node3"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.NewSignature | defined in signature.go:106&#10;at signature.go:107: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at signature.go:117: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at signature.go:110: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at signature.go:110: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at signature.go:114: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at signature.go:107: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at signature.go:108: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.ReadSignature]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M108.1221,-158C108.1221,-158 27.9593,-158 27.9593,-158 21.9593,-158 15.9593,-152 15.9593,-146 15.9593,-146 15.9593,-134 15.9593,-134 15.9593,-128 21.9593,-122 27.9593,-122 27.9593,-122 108.1221,-122 108.1221,-122 114.1221,-122 120.1221,-128 120.1221,-134 120.1221,-134 120.1221,-146 120.1221,-146 120.1221,-152 114.1221,-158 108.1221,-158"/>
<text text-anchor="middle" x="68.0407" y="-135.8" font-family="Verdana" font-size="14.00" fill="#000000">NewSignature</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.ReadSignature -->
<g id="node2" class="node">
<g id="node4" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.ReadSignature</title>
<g id="a_node2"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.ReadSignature | defined in signature.go:66&#10;at signature.go:90: calling [github.com/samber/oops.Errorf]&#10;at signature.go:95: calling [github.com/samber/oops.Errorf]&#10;at signature.go:96: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at signature.go:96: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M295.0963,-124C295.0963,-124 212.2559,-124 212.2559,-124 206.2559,-124 200.2559,-118 200.2559,-112 200.2559,-112 200.2559,-100 200.2559,-100 200.2559,-94 206.2559,-88 212.2559,-88 212.2559,-88 295.0963,-88 295.0963,-88 301.0963,-88 307.0963,-94 307.0963,-100 307.0963,-100 307.0963,-112 307.0963,-112 307.0963,-118 301.0963,-124 295.0963,-124"/>
<text text-anchor="middle" x="253.6761" y="-101.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadSignature</text>
<g id="a_node4"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.ReadSignature | defined in signature.go:66&#10;at signature.go:96: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at signature.go:96: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at signature.go:90: calling [github.com/samber/oops.Errorf]&#10;at signature.go:95: calling [github.com/samber/oops.Errorf]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M295.0963,-69C295.0963,-69 212.2559,-69 212.2559,-69 206.2559,-69 200.2559,-63 200.2559,-57 200.2559,-57 200.2559,-45 200.2559,-45 200.2559,-39 206.2559,-33 212.2559,-33 212.2559,-33 295.0963,-33 295.0963,-33 301.0963,-33 307.0963,-39 307.0963,-45 307.0963,-45 307.0963,-57 307.0963,-57 307.0963,-63 301.0963,-69 295.0963,-69"/>
<text text-anchor="middle" x="253.6761" y="-46.8" font-family="Verdana" font-size="14.00" fill="#000000">ReadSignature</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.NewSignature&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.ReadSignature -->
<g id="edge4" class="edge">
<g id="edge10" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.NewSignature&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.ReadSignature</title>
<g id="a_edge4"><a xlink:title="at signature.go:108: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.ReadSignature]">
<path fill="none" stroke="#000000" d="M100.2528,-174.7926C116.7462,-165.73 137.267,-154.8498 156.0814,-146 169.2752,-139.794 183.7031,-133.5789 197.321,-127.9607"/>
<polygon fill="#000000" stroke="#000000" points="198.6596,-131.1947 206.5943,-124.1739 196.0132,-124.7142 198.6596,-131.1947"/>
<g id="a_edge10"><a xlink:title="at signature.go:108: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.ReadSignature]">
<path fill="none" stroke="#000000" d="M100.3187,-121.9311C116.8289,-112.9038 137.3448,-102.0133 156.0814,-93 170.2625,-86.1781 185.8305,-79.2387 200.2859,-73.0176"/>
<polygon fill="#000000" stroke="#000000" points="201.7762,-76.1871 209.5989,-69.0417 199.0277,-69.7492 201.7762,-76.1871"/>
</a>
</g>
</g>
@ -68,11 +96,11 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.NewSignature&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField -->
<g id="edge1" class="edge">
<g id="edge8" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.NewSignature&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField</title>
<g id="a_edge1"><a xlink:title="at signature.go:107: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="none" stroke="#8b4513" d="M120.2271,-204.9654C142.6007,-209.9142 169.0645,-215.5281 193.0814,-220 246.6801,-229.9799 262.2256,-222.7606 314.2708,-239 340.6288,-247.2243 368.5487,-260.5281 390.4032,-272.1051"/>
<polygon fill="#8b4513" stroke="#8b4513" points="388.9124,-275.2776 399.3758,-276.9412 392.2336,-269.1156 388.9124,-275.2776"/>
<g id="a_edge8"><a xlink:title="at signature.go:107: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="none" stroke="#8b4513" d="M120.3668,-148.8384C190.1516,-160.7623 305.9394,-181.0792 314.2708,-186 353.4204,-209.1229 344.6875,-235.4814 379.2708,-265 381.775,-267.1375 384.4518,-269.2094 387.2188,-271.1986"/>
<polygon fill="#8b4513" stroke="#8b4513" points="385.4558,-274.2306 395.7084,-276.9015 389.3591,-268.4199 385.4558,-274.2306"/>
</a>
</g>
</g>
@ -87,11 +115,11 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.NewSignature&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError -->
<g id="edge8" class="edge">
<g id="edge4" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.NewSignature&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError</title>
<g id="a_edge8"><a xlink:title="at signature.go:110: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="none" stroke="#8b4513" d="M120.341,-181.3084C189.5934,-165.8272 310.9326,-138.7022 379.4763,-123.3794"/>
<polygon fill="#8b4513" stroke="#8b4513" points="380.6053,-126.7135 389.6008,-121.1161 379.0781,-119.8821 380.6053,-126.7135"/>
<g id="a_edge4"><a xlink:title="at signature.go:110: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="none" stroke="#8b4513" d="M120.3499,-126.3642C132.0338,-123.81 144.4193,-121.4804 156.0814,-120 233.5606,-110.1646 324.2917,-109.6452 379.5304,-110.5437"/>
<polygon fill="#8b4513" stroke="#8b4513" points="379.6922,-114.0472 389.7553,-110.7329 379.8218,-107.0484 379.6922,-114.0472"/>
</a>
</g>
</g>
@ -106,11 +134,11 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.NewSignature&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="edge9" class="edge">
<g id="edge5" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.NewSignature&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_edge9"><a xlink:title="at signature.go:110: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M120.341,-190.1132C193.3004,-186.0861 324.0721,-178.8679 390.0137,-175.2281"/>
<polygon fill="#8b4513" stroke="#8b4513" points="390.6108,-178.7006 400.4027,-174.6547 390.2249,-171.7112 390.6108,-178.7006"/>
<g id="a_edge5"><a xlink:title="at signature.go:110: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M120.1671,-136.7629C177.3282,-134.2601 271.5401,-133.2214 351.2708,-147 364.4226,-149.2728 378.3769,-153.2877 390.8445,-157.4926"/>
<polygon fill="#8b4513" stroke="#8b4513" points="389.886,-160.8654 400.4808,-160.8759 392.205,-154.2607 389.886,-160.8654"/>
</a>
</g>
</g>
@ -125,11 +153,11 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.NewSignature&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge5" class="edge">
<g id="edge6" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.NewSignature&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge5"><a xlink:title="at signature.go:114: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M120.341,-198.918C188.7545,-206.6592 308.0006,-220.1523 376.9625,-227.9556"/>
<polygon fill="#8b4513" stroke="#8b4513" points="376.8415,-231.4642 387.1717,-229.1108 377.6286,-224.5085 376.8415,-231.4642"/>
<g id="a_edge6"><a xlink:title="at signature.go:114: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M120.2493,-142.0043C190.7307,-145.4303 312.0216,-154.0791 351.2708,-174 367.5344,-182.2546 365.0356,-192.5982 379.2708,-204 382.0037,-206.1889 384.9131,-208.326 387.9039,-210.3864"/>
<polygon fill="#8b4513" stroke="#8b4513" points="386.1803,-213.4407 396.469,-215.9692 390.0027,-207.5765 386.1803,-213.4407"/>
</a>
</g>
</g>
@ -137,25 +165,25 @@
<g id="node10" class="node">
<title>(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_node10"><a xlink:title="(*github.com/sirupsen/logrus.Logger).Debug | defined in logger.go:221">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M272.4981,-313C272.4981,-313 234.8541,-313 234.8541,-313 228.8541,-313 222.8541,-307 222.8541,-301 222.8541,-301 222.8541,-289 222.8541,-289 222.8541,-283 228.8541,-277 234.8541,-277 234.8541,-277 272.4981,-277 272.4981,-277 278.4981,-277 284.4981,-283 284.4981,-289 284.4981,-289 284.4981,-301 284.4981,-301 284.4981,-307 278.4981,-313 272.4981,-313"/>
<text text-anchor="middle" x="253.6761" y="-299.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
<text text-anchor="middle" x="253.6761" y="-282.4" font-family="Verdana" font-size="14.00" fill="#000000">Debug</text>
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M272.4981,-260C272.4981,-260 234.8541,-260 234.8541,-260 228.8541,-260 222.8541,-254 222.8541,-248 222.8541,-248 222.8541,-236 222.8541,-236 222.8541,-230 228.8541,-224 234.8541,-224 234.8541,-224 272.4981,-224 272.4981,-224 278.4981,-224 284.4981,-230 284.4981,-236 284.4981,-236 284.4981,-248 284.4981,-248 284.4981,-254 278.4981,-260 272.4981,-260"/>
<text text-anchor="middle" x="253.6761" y="-246.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
<text text-anchor="middle" x="253.6761" y="-229.4" font-family="Verdana" font-size="14.00" fill="#000000">Debug</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.NewSignature&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge6" class="edge">
<g id="edge1" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.NewSignature&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge6"><a xlink:title="at signature.go:107: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at signature.go:117: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M92.9329,-211.2683C117.4985,-228.7221 156.5722,-254.9699 193.0814,-273 199.419,-276.1298 206.3176,-279.0544 213.1146,-281.6844"/>
<polygon fill="#8b4513" stroke="#8b4513" points="212.33,-285.1261 222.9231,-285.3166 214.7609,-278.5617 212.33,-285.1261"/>
<g id="a_edge1"><a xlink:title="at signature.go:107: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at signature.go:117: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M92.9329,-158.2683C117.4985,-175.7221 156.5722,-201.9699 193.0814,-220 199.419,-223.1298 206.3176,-226.0544 213.1146,-228.6844"/>
<polygon fill="#8b4513" stroke="#8b4513" points="212.33,-232.1261 222.9231,-232.3166 214.7609,-225.5617 212.33,-232.1261"/>
</a>
</g>
</g>
<!-- github.com/samber/oops.Errorf -->
<g id="node3" class="node">
<g id="node5" class="node">
<title>github.com/samber/oops.Errorf</title>
<g id="a_node3"><a xlink:title="github.com/samber/oops.Errorf | defined in oops.go:34">
<g id="a_node5"><a xlink:title="github.com/samber/oops.Errorf | defined in oops.go:34">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M447.5755,-52C447.5755,-52 413.1849,-52 413.1849,-52 407.1849,-52 401.1849,-46 401.1849,-40 401.1849,-40 401.1849,-28 401.1849,-28 401.1849,-22 407.1849,-16 413.1849,-16 413.1849,-16 447.5755,-16 447.5755,-16 453.5755,-16 459.5755,-22 459.5755,-28 459.5755,-28 459.5755,-40 459.5755,-40 459.5755,-46 453.5755,-52 447.5755,-52"/>
<text text-anchor="middle" x="430.3802" y="-38.2" font-family="Verdana" font-size="14.00" fill="#000000">oops</text>
<text text-anchor="middle" x="430.3802" y="-21.4" font-family="Verdana" font-size="14.00" fill="#000000">Errorf</text>
@ -163,57 +191,29 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.ReadSignature&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge2" class="edge">
<g id="edge9" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.ReadSignature&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge2"><a xlink:title="at signature.go:90: calling [github.com/samber/oops.Errorf]&#10;at signature.go:95: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M298.266,-87.8314C327.0751,-76.0928 364.1891,-60.9703 391.7412,-49.7439"/>
<polygon fill="#8b4513" stroke="#8b4513" points="393.1185,-52.9621 401.0586,-45.9474 390.4771,-46.4796 393.1185,-52.9621"/>
<g id="a_edge9"><a xlink:title="at signature.go:90: calling [github.com/samber/oops.Errorf]&#10;at signature.go:95: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M307.0076,-43.7814C321.0603,-42.042 336.2212,-40.3099 350.2708,-39 363.518,-37.7649 378.0268,-36.7556 391.0136,-35.9755"/>
<polygon fill="#8b4513" stroke="#8b4513" points="391.2664,-39.4668 401.0492,-35.399 390.8649,-32.4783 391.2664,-39.4668"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.ReadSignature&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError -->
<g id="edge3" class="edge">
<g id="edge2" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.ReadSignature&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError</title>
<g id="a_edge3"><a xlink:title="at signature.go:96: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="none" stroke="#8b4513" d="M307.1727,-107.8165C330.1637,-108.5971 356.9049,-109.5051 379.5878,-110.2753"/>
<polygon fill="#8b4513" stroke="#8b4513" points="379.583,-113.7771 389.696,-110.6186 379.8206,-106.7811 379.583,-113.7771"/>
<g id="a_edge2"><a xlink:title="at signature.go:96: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="none" stroke="#8b4513" d="M306.8913,-53.7663C321.7462,-55.9635 337.5623,-59.7036 351.2708,-66 366.1652,-72.8411 365.3628,-81.3277 379.2708,-90 379.7831,-90.3195 380.3009,-90.6364 380.8236,-90.9509"/>
<polygon fill="#8b4513" stroke="#8b4513" points="379.1809,-94.0419 389.6271,-95.8101 382.5636,-87.9135 379.1809,-94.0419"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.ReadSignature&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="edge7" class="edge">
<g id="edge3" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.ReadSignature&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_edge7"><a xlink:title="at signature.go:96: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M301.4948,-124.1312C329.5,-134.7498 364.442,-147.9986 390.8762,-158.0215"/>
<polygon fill="#8b4513" stroke="#8b4513" points="389.9672,-161.4199 400.5586,-161.6927 392.449,-154.8746 389.9672,-161.4199"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.init -->
<g id="node4" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.init</title>
<g id="a_node4"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.init | defined in .:0&#10;at signature.go:10: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M83.0407,-56C83.0407,-56 53.0407,-56 53.0407,-56 47.0407,-56 41.0407,-50 41.0407,-44 41.0407,-44 41.0407,-32 41.0407,-32 41.0407,-26 47.0407,-20 53.0407,-20 53.0407,-20 83.0407,-20 83.0407,-20 89.0407,-20 95.0407,-26 95.0407,-32 95.0407,-32 95.0407,-44 95.0407,-44 95.0407,-50 89.0407,-56 83.0407,-56"/>
<text text-anchor="middle" x="68.0407" y="-33.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="node5" class="node">
<title>github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_node5"><a xlink:title="github.com/go&#45;i2p/logger.GetGoI2PLogger | defined in log.go:120">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M302.3656,-56C302.3656,-56 204.9866,-56 204.9866,-56 198.9866,-56 192.9866,-50 192.9866,-44 192.9866,-44 192.9866,-32 192.9866,-32 192.9866,-26 198.9866,-20 204.9866,-20 204.9866,-20 302.3656,-20 302.3656,-20 308.3656,-20 314.3656,-26 314.3656,-32 314.3656,-32 314.3656,-44 314.3656,-44 314.3656,-50 308.3656,-56 302.3656,-56"/>
<text text-anchor="middle" x="253.6761" y="-42.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="253.6761" y="-25.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="edge10" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/common/signature.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_edge10"><a xlink:title="at signature.go:10: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="none" stroke="#8b4513" d="M95.4318,-38C118.3566,-38 152.1155,-38 182.5704,-38"/>
<polygon fill="#8b4513" stroke="#8b4513" points="182.7516,-41.5001 192.7515,-38 182.7515,-34.5001 182.7516,-41.5001"/>
<g id="a_edge3"><a xlink:title="at signature.go:96: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M280.561,-69.2323C300.376,-82.8562 327.8411,-102.1316 351.2708,-120 364.0764,-129.766 366.0636,-133.7844 379.2708,-143 383.2286,-145.7617 387.452,-148.5185 391.7106,-151.1795"/>
<polygon fill="#8b4513" stroke="#8b4513" points="390.0647,-154.2749 400.4279,-156.4779 393.7004,-148.2931 390.0647,-154.2749"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/config"
![config.svg](config)
![config.svg](config.svg)

View File

@ -4,322 +4,100 @@
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: gocallvis Pages: 1 -->
<svg width="673pt" height="840pt"
viewBox="0.00 0.00 672.82 840.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 840)">
<svg width="673pt" height="848pt"
viewBox="0.00 0.00 672.82 848.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 848)">
<title>gocallvis</title>
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-840 672.8192,-840 672.8192,0 0,0"/>
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-848 672.8192,-848 672.8192,0 0,0"/>
<g id="clust1" class="cluster">
<title>cluster_focus</title>
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-832 664.8192,-832 664.8192,-8 8,-8"/>
<text text-anchor="middle" x="336.4096" y="-811.8" font-family="Arial" font-size="18.00" fill="#000000">config</text>
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-840 664.8192,-840 664.8192,-8 8,-8"/>
<text text-anchor="middle" x="336.4096" y="-819.8" font-family="Arial" font-size="18.00" fill="#000000">config</text>
</g>
<g id="clust3" class="cluster">
<title>cluster_*github.com/sirupsen/logrus.Logger</title>
<g id="a_clust3"><a xlink:title="type: *github.com/sirupsen/logrus.Logger">
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M213.047,-602C213.047,-602 271.0288,-602 271.0288,-602 277.0288,-602 283.0288,-608 283.0288,-614 283.0288,-614 283.0288,-729 283.0288,-729 283.0288,-735 277.0288,-741 271.0288,-741 271.0288,-741 213.047,-741 213.047,-741 207.047,-741 201.047,-735 201.047,-729 201.047,-729 201.047,-614 201.047,-614 201.047,-608 207.047,-602 213.047,-602"/>
<text text-anchor="middle" x="242.0379" y="-610.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M213.047,-663C213.047,-663 271.0288,-663 271.0288,-663 277.0288,-663 283.0288,-669 283.0288,-675 283.0288,-675 283.0288,-790 283.0288,-790 283.0288,-796 277.0288,-802 271.0288,-802 271.0288,-802 213.047,-802 213.047,-802 207.047,-802 201.047,-796 201.047,-790 201.047,-790 201.047,-675 201.047,-675 201.047,-669 207.047,-663 213.047,-663"/>
<text text-anchor="middle" x="242.0379" y="-671.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
</a>
</g>
</g>
<g id="clust2" class="cluster">
<title>cluster_*github.com/go&#45;i2p/logger.Logger</title>
<g id="a_clust2"><a xlink:title="type: *github.com/go&#45;i2p/logger.Logger">
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M430.3472,-182C430.3472,-182 484.113,-182 484.113,-182 490.113,-182 496.113,-188 496.113,-194 496.113,-194 496.113,-248 496.113,-248 496.113,-254 490.113,-260 484.113,-260 484.113,-260 430.3472,-260 430.3472,-260 424.3472,-260 418.3472,-254 418.3472,-248 418.3472,-248 418.3472,-194 418.3472,-194 418.3472,-188 424.3472,-182 430.3472,-182"/>
<text text-anchor="middle" x="457.2301" y="-190.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultConfig -->
<g id="node1" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultConfig</title>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultConfig | defined in router.go:32&#10;at router.go:33: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.home]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M495.9892,-672C495.9892,-672 418.471,-672 418.471,-672 412.471,-672 406.471,-666 406.471,-660 406.471,-660 406.471,-648 406.471,-648 406.471,-642 412.471,-636 418.471,-636 418.471,-636 495.9892,-636 495.9892,-636 501.9892,-636 507.9892,-642 507.9892,-648 507.9892,-648 507.9892,-660 507.9892,-660 507.9892,-666 501.9892,-672 495.9892,-672"/>
<text text-anchor="middle" x="457.2301" y="-649.8" font-family="Verdana" font-size="14.00" fill="#000000">defaultConfig</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.home -->
<g id="node2" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.home</title>
<g id="a_node2"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/config.home | defined in router.go:20">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M644.8719,-709C644.8719,-709 613.6613,-709 613.6613,-709 607.6613,-709 601.6613,-703 601.6613,-697 601.6613,-697 601.6613,-685 601.6613,-685 601.6613,-679 607.6613,-673 613.6613,-673 613.6613,-673 644.8719,-673 644.8719,-673 650.8719,-673 656.8719,-679 656.8719,-685 656.8719,-685 656.8719,-697 656.8719,-697 656.8719,-703 650.8719,-709 644.8719,-709"/>
<text text-anchor="middle" x="629.2666" y="-686.8" font-family="Verdana" font-size="14.00" fill="#000000">home</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultConfig&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.home -->
<g id="edge7" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultConfig&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.home</title>
<g id="a_edge7"><a xlink:title="at router.go:33: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.home]">
<path fill="none" stroke="#000000" d="M508.3809,-665.001C535.0739,-670.7419 567.1591,-677.6425 591.5644,-682.8914"/>
<polygon fill="#000000" stroke="#000000" points="591.0031,-686.3506 601.5155,-685.0315 592.475,-679.5071 591.0031,-686.3506"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig -->
<g id="node3" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig</title>
<g id="a_node3"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig | defined in config.go:92&#10;at config.go:94: calling [github.com/spf13/viper.GetString]&#10;at config.go:95: calling [github.com/spf13/viper.GetString]&#10;at config.go:99: calling [github.com/spf13/viper.GetString]&#10;at config.go:104: calling [github.com/spf13/viper.UnmarshalKey]&#10;at config.go:105: calling [(*github.com/go&#45;i2p/logger.Logger).Warnf]&#10;at config.go:110: calling [github.com/spf13/viper.GetInt]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M300.9551,-52C300.9551,-52 183.1207,-52 183.1207,-52 177.1207,-52 171.1207,-46 171.1207,-40 171.1207,-40 171.1207,-28 171.1207,-28 171.1207,-22 177.1207,-16 183.1207,-16 183.1207,-16 300.9551,-16 300.9551,-16 306.9551,-16 312.9551,-22 312.9551,-28 312.9551,-28 312.9551,-40 312.9551,-40 312.9551,-46 306.9551,-52 300.9551,-52"/>
<text text-anchor="middle" x="242.0379" y="-29.8" font-family="Verdana" font-size="14.00" fill="#000000">UpdateRouterConfig</text>
</a>
</g>
</g>
<!-- github.com/spf13/viper.GetString -->
<g id="node4" class="node">
<title>github.com/spf13/viper.GetString</title>
<g id="a_node4"><a xlink:title="github.com/spf13/viper.GetString | defined in viper.go:975">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M484.6675,-52C484.6675,-52 429.7927,-52 429.7927,-52 423.7927,-52 417.7927,-46 417.7927,-40 417.7927,-40 417.7927,-28 417.7927,-28 417.7927,-22 423.7927,-16 429.7927,-16 429.7927,-16 484.6675,-16 484.6675,-16 490.6675,-16 496.6675,-22 496.6675,-28 496.6675,-28 496.6675,-40 496.6675,-40 496.6675,-46 490.6675,-52 484.6675,-52"/>
<text text-anchor="middle" x="457.2301" y="-38.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
<text text-anchor="middle" x="457.2301" y="-21.4" font-family="Verdana" font-size="14.00" fill="#000000">GetString</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig&#45;&gt;github.com/spf13/viper.GetString -->
<g id="edge1" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig&#45;&gt;github.com/spf13/viper.GetString</title>
<g id="a_edge1"><a xlink:title="at config.go:94: calling [github.com/spf13/viper.GetString]&#10;at config.go:95: calling [github.com/spf13/viper.GetString]&#10;at config.go:99: calling [github.com/spf13/viper.GetString]">
<path fill="none" stroke="#8b4513" d="M312.7979,-34C343.892,-34 379.6538,-34 407.813,-34"/>
<polygon fill="#8b4513" stroke="#8b4513" points="407.8207,-37.5001 417.8207,-34 407.8207,-30.5001 407.8207,-37.5001"/>
</a>
</g>
</g>
<!-- github.com/spf13/viper.UnmarshalKey -->
<g id="node5" class="node">
<title>github.com/spf13/viper.UnmarshalKey</title>
<g id="a_node5"><a xlink:title="github.com/spf13/viper.UnmarshalKey | defined in viper.go:1103">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M499.4738,-113C499.4738,-113 414.9864,-113 414.9864,-113 408.9864,-113 402.9864,-107 402.9864,-101 402.9864,-101 402.9864,-89 402.9864,-89 402.9864,-83 408.9864,-77 414.9864,-77 414.9864,-77 499.4738,-77 499.4738,-77 505.4738,-77 511.4738,-83 511.4738,-89 511.4738,-89 511.4738,-101 511.4738,-101 511.4738,-107 505.4738,-113 499.4738,-113"/>
<text text-anchor="middle" x="457.2301" y="-99.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
<text text-anchor="middle" x="457.2301" y="-82.4" font-family="Verdana" font-size="14.00" fill="#000000">UnmarshalKey</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig&#45;&gt;github.com/spf13/viper.UnmarshalKey -->
<g id="edge15" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig&#45;&gt;github.com/spf13/viper.UnmarshalKey</title>
<g id="a_edge15"><a xlink:title="at config.go:104: calling [github.com/spf13/viper.UnmarshalKey]">
<path fill="none" stroke="#8b4513" d="M307.2809,-52.0688C321.2968,-55.9794 336.0198,-60.109 349.7462,-64 363.789,-67.9807 378.8504,-72.2959 393.1219,-76.4062"/>
<polygon fill="#8b4513" stroke="#8b4513" points="392.2755,-79.8046 402.8538,-79.2124 394.215,-73.0787 392.2755,-79.8046"/>
</a>
</g>
</g>
<!-- github.com/spf13/viper.GetInt -->
<g id="node6" class="node">
<title>github.com/spf13/viper.GetInt</title>
<g id="a_node6"><a xlink:title="github.com/spf13/viper.GetInt | defined in viper.go:989">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M474.9936,-174C474.9936,-174 439.4666,-174 439.4666,-174 433.4666,-174 427.4666,-168 427.4666,-162 427.4666,-162 427.4666,-150 427.4666,-150 427.4666,-144 433.4666,-138 439.4666,-138 439.4666,-138 474.9936,-138 474.9936,-138 480.9936,-138 486.9936,-144 486.9936,-150 486.9936,-150 486.9936,-162 486.9936,-162 486.9936,-168 480.9936,-174 474.9936,-174"/>
<text text-anchor="middle" x="457.2301" y="-160.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
<text text-anchor="middle" x="457.2301" y="-143.4" font-family="Verdana" font-size="14.00" fill="#000000">GetInt</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig&#45;&gt;github.com/spf13/viper.GetInt -->
<g id="edge17" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig&#45;&gt;github.com/spf13/viper.GetInt</title>
<g id="a_edge17"><a xlink:title="at config.go:110: calling [github.com/spf13/viper.GetInt]">
<path fill="none" stroke="#8b4513" d="M276.9726,-52.1619C288.3923,-58.1305 301.1256,-64.8192 312.7462,-71 329.2501,-79.778 334.6796,-79.9353 349.7462,-91 367.7324,-104.2088 367.1334,-113.6899 385.7462,-126 395.6443,-132.5464 407.204,-138.1421 418.1066,-142.6655"/>
<polygon fill="#8b4513" stroke="#8b4513" points="416.8736,-145.9416 427.4602,-146.3614 419.4461,-139.4314 416.8736,-145.9416"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/logger.Logger).Warnf -->
<g id="node21" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).Warnf</title>
<g id="a_node21"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).Warnf | defined in log.go:36">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M474.9964,-252C474.9964,-252 439.4638,-252 439.4638,-252 433.4638,-252 427.4638,-246 427.4638,-240 427.4638,-240 427.4638,-228 427.4638,-228 427.4638,-222 433.4638,-216 439.4638,-216 439.4638,-216 474.9964,-216 474.9964,-216 480.9964,-216 486.9964,-222 486.9964,-228 486.9964,-228 486.9964,-240 486.9964,-240 486.9964,-246 480.9964,-252 474.9964,-252"/>
<text text-anchor="middle" x="457.2301" y="-238.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="457.2301" y="-221.4" font-family="Verdana" font-size="14.00" fill="#000000">Warnf</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warnf -->
<g id="edge16" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warnf</title>
<g id="a_edge16"><a xlink:title="at config.go:105: calling [(*github.com/go&#45;i2p/logger.Logger).Warnf]">
<path fill="none" stroke="#8b4513" d="M283.8855,-52.1808C293.8633,-57.494 304.1124,-63.8306 312.7462,-71 333.1991,-87.9836 336.6214,-94.8806 349.7462,-118 371.8323,-156.9048 353.0679,-181.4466 385.7462,-212 394.476,-220.1621 406.1686,-225.299 417.5652,-228.5308"/>
<polygon fill="#8b4513" stroke="#8b4513" points="416.8803,-231.9659 427.4222,-230.9087 418.5219,-225.1611 416.8803,-231.9659"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.init -->
<g id="node7" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.init</title>
<g id="a_node7"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/config.init | defined in .:0&#10;at netdb.go:15: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultConfig]&#10;at router.go:41: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultConfig]&#10;at router.go:40: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultBase]&#10;at router.go:48: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]&#10;at config.go:14: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M257.0379,-794C257.0379,-794 227.0379,-794 227.0379,-794 221.0379,-794 215.0379,-788 215.0379,-782 215.0379,-782 215.0379,-770 215.0379,-770 215.0379,-764 221.0379,-758 227.0379,-758 227.0379,-758 257.0379,-758 257.0379,-758 263.0379,-758 269.0379,-764 269.0379,-770 269.0379,-770 269.0379,-782 269.0379,-782 269.0379,-788 263.0379,-794 257.0379,-794"/>
<text text-anchor="middle" x="242.0379" y="-771.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.init&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultConfig -->
<g id="edge2" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.init&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultConfig</title>
<g id="a_edge2"><a xlink:title="at netdb.go:15: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultConfig]&#10;at router.go:41: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultConfig]">
<path fill="none" stroke="#000000" d="M269.1861,-767.15C282.7582,-762.166 299.1448,-755.2766 312.7462,-747 349.1098,-724.8723 349.6053,-707.4897 385.7462,-685 390.4838,-682.0519 395.5506,-679.249 400.7175,-676.621"/>
<polygon fill="#000000" stroke="#000000" points="402.6036,-679.5964 410.0766,-672.0861 399.5512,-673.297 402.6036,-679.5964"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="node8" class="node">
<title>github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_node8"><a xlink:title="github.com/go&#45;i2p/logger.GetGoI2PLogger | defined in log.go:120">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M505.9196,-733C505.9196,-733 408.5406,-733 408.5406,-733 402.5406,-733 396.5406,-727 396.5406,-721 396.5406,-721 396.5406,-709 396.5406,-709 396.5406,-703 402.5406,-697 408.5406,-697 408.5406,-697 505.9196,-697 505.9196,-697 511.9196,-697 517.9196,-703 517.9196,-709 517.9196,-709 517.9196,-721 517.9196,-721 517.9196,-727 511.9196,-733 505.9196,-733"/>
<text text-anchor="middle" x="457.2301" y="-719.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="457.2301" y="-702.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="edge23" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_edge23"><a xlink:title="at config.go:14: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="none" stroke="#8b4513" d="M269.2921,-768.2743C298.6514,-759.9519 346.5527,-746.3735 386.646,-735.0083"/>
<polygon fill="#8b4513" stroke="#8b4513" points="387.723,-738.341 396.3894,-732.2464 385.8139,-731.6063 387.723,-738.341"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultBase -->
<g id="node9" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultBase</title>
<g id="a_node9"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultBase | defined in router.go:28&#10;at router.go:29: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.home]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M490.3115,-794C490.3115,-794 424.1487,-794 424.1487,-794 418.1487,-794 412.1487,-788 412.1487,-782 412.1487,-782 412.1487,-770 412.1487,-770 412.1487,-764 418.1487,-758 424.1487,-758 424.1487,-758 490.3115,-758 490.3115,-758 496.3115,-758 502.3115,-764 502.3115,-770 502.3115,-770 502.3115,-782 502.3115,-782 502.3115,-788 496.3115,-794 490.3115,-794"/>
<text text-anchor="middle" x="457.2301" y="-771.8" font-family="Verdana" font-size="14.00" fill="#000000">defaultBase</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.init&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultBase -->
<g id="edge18" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.init&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultBase</title>
<g id="a_edge18"><a xlink:title="at router.go:40: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultBase]">
<path fill="none" stroke="#000000" d="M269.2921,-776C302.4127,-776 359.1306,-776 401.6157,-776"/>
<polygon fill="#000000" stroke="#000000" points="401.8132,-779.5001 411.8132,-776 401.8132,-772.5001 401.8132,-779.5001"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig -->
<g id="node10" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig</title>
<g id="a_node10"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig | defined in router.go:44">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M516.6979,-611C516.6979,-611 397.7623,-611 397.7623,-611 391.7623,-611 385.7623,-605 385.7623,-599 385.7623,-599 385.7623,-587 385.7623,-587 385.7623,-581 391.7623,-575 397.7623,-575 397.7623,-575 516.6979,-575 516.6979,-575 522.6979,-575 528.6979,-581 528.6979,-587 528.6979,-587 528.6979,-599 528.6979,-599 528.6979,-605 522.6979,-611 516.6979,-611"/>
<text text-anchor="middle" x="457.2301" y="-588.8" font-family="Verdana" font-size="14.00" fill="#000000">DefaultRouterConfig</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.init&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig -->
<g id="edge19" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.init&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig</title>
<g id="a_edge19"><a xlink:title="at router.go:48: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]">
<path fill="none" stroke="#000000" d="M269.1158,-769.3961C283.3142,-764.8915 300.2928,-757.7516 312.7462,-747 360.8639,-705.4576 338.0457,-666.0208 385.7462,-624 388.9435,-621.1834 392.4364,-618.5905 396.1035,-616.209"/>
<polygon fill="#000000" stroke="#000000" points="398.0701,-619.1131 404.9196,-611.03 394.5244,-613.0774 398.0701,-619.1131"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultBase&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.home -->
<g id="edge8" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultBase&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.home</title>
<g id="a_edge8"><a xlink:title="at router.go:29: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.home]">
<path fill="none" stroke="#000000" d="M502.1609,-757.978C511.0355,-754.1847 520.2263,-750.0889 528.714,-746 550.2814,-735.61 573.786,-722.8381 592.6433,-712.2179"/>
<polygon fill="#000000" stroke="#000000" points="594.5257,-715.1741 601.4984,-707.197 591.0731,-709.0848 594.5257,-715.1741"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.setDefaults -->
<g id="node11" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.setDefaults</title>
<g id="a_node11"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/config.setDefaults | defined in config.go:79&#10;at config.go:81: calling [github.com/spf13/viper.SetDefault]&#10;at config.go:82: calling [github.com/spf13/viper.SetDefault]&#10;at config.go:85: calling [github.com/spf13/viper.SetDefault]&#10;at config.go:88: calling [github.com/spf13/viper.SetDefault]&#10;at config.go:89: calling [github.com/spf13/viper.SetDefault]&#10;at config.go:81: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]&#10;at config.go:82: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M273.5099,-140C273.5099,-140 210.5659,-140 210.5659,-140 204.5659,-140 198.5659,-134 198.5659,-128 198.5659,-128 198.5659,-116 198.5659,-116 198.5659,-110 204.5659,-104 210.5659,-104 210.5659,-104 273.5099,-104 273.5099,-104 279.5099,-104 285.5099,-110 285.5099,-116 285.5099,-116 285.5099,-128 285.5099,-128 285.5099,-134 279.5099,-140 273.5099,-140"/>
<text text-anchor="middle" x="242.0379" y="-117.8" font-family="Verdana" font-size="14.00" fill="#000000">setDefaults</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.setDefaults&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig -->
<g id="edge24" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.setDefaults&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig</title>
<g id="a_edge24"><a xlink:title="at config.go:81: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]&#10;at config.go:82: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]">
<path fill="none" stroke="#000000" d="M285.7551,-134.3874C295.6866,-138.9095 305.446,-144.9638 312.7462,-153 341.8,-184.9828 423.9374,-473.5016 449.5228,-565.1742"/>
<polygon fill="#000000" stroke="#000000" points="446.1684,-566.1755 452.2227,-574.8701 452.9119,-564.2977 446.1684,-566.1755"/>
</a>
</g>
</g>
<!-- github.com/spf13/viper.SetDefault -->
<g id="node12" class="node">
<title>github.com/spf13/viper.SetDefault</title>
<g id="a_node12"><a xlink:title="github.com/spf13/viper.SetDefault | defined in viper.go:1596">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M487.0956,-313C487.0956,-313 427.3646,-313 427.3646,-313 421.3646,-313 415.3646,-307 415.3646,-301 415.3646,-301 415.3646,-289 415.3646,-289 415.3646,-283 421.3646,-277 427.3646,-277 427.3646,-277 487.0956,-277 487.0956,-277 493.0956,-277 499.0956,-283 499.0956,-289 499.0956,-289 499.0956,-301 499.0956,-301 499.0956,-307 493.0956,-313 487.0956,-313"/>
<text text-anchor="middle" x="457.2301" y="-299.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
<text text-anchor="middle" x="457.2301" y="-282.4" font-family="Verdana" font-size="14.00" fill="#000000">SetDefault</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.setDefaults&#45;&gt;github.com/spf13/viper.SetDefault -->
<g id="edge9" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.setDefaults&#45;&gt;github.com/spf13/viper.SetDefault</title>
<g id="a_edge9"><a xlink:title="at config.go:81: calling [github.com/spf13/viper.SetDefault]&#10;at config.go:82: calling [github.com/spf13/viper.SetDefault]&#10;at config.go:85: calling [github.com/spf13/viper.SetDefault]&#10;at config.go:88: calling [github.com/spf13/viper.SetDefault]&#10;at config.go:89: calling [github.com/spf13/viper.SetDefault]">
<path fill="none" stroke="#8b4513" d="M285.8764,-136.4613C295.3588,-140.8401 304.8871,-146.3101 312.7462,-153 358.2755,-191.7556 339.6829,-227.8806 385.7462,-266 391.7677,-270.983 398.7587,-275.2012 405.9643,-278.7444"/>
<polygon fill="#8b4513" stroke="#8b4513" points="404.5938,-281.9656 415.1493,-282.878 407.4666,-275.5823 404.5938,-281.9656"/>
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M430.3472,-602C430.3472,-602 484.113,-602 484.113,-602 490.113,-602 496.113,-608 496.113,-614 496.113,-614 496.113,-668 496.113,-668 496.113,-674 490.113,-680 484.113,-680 484.113,-680 430.3472,-680 430.3472,-680 424.3472,-680 418.3472,-674 418.3472,-668 418.3472,-668 418.3472,-614 418.3472,-614 418.3472,-608 424.3472,-602 430.3472,-602"/>
<text text-anchor="middle" x="457.2301" y="-610.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig -->
<g id="node13" class="node">
<g id="node1" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig</title>
<g id="a_node13"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig | defined in config.go:19&#10;at config.go:61: calling [github.com/spf13/viper.AddConfigPath]&#10;at config.go:31: calling [(*github.com/sirupsen/logrus.Logger).Fatalf]&#10;at config.go:49: calling [(*github.com/sirupsen/logrus.Logger).Fatalf]&#10;at config.go:54: calling [(*github.com/sirupsen/logrus.Logger).Fatalf]&#10;at config.go:41: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]&#10;at config.go:42: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]&#10;at config.go:43: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]&#10;at config.go:44: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]&#10;at config.go:57: calling [(*github.com/sirupsen/logrus.Logger).Debugf]&#10;at config.go:72: calling [(*github.com/sirupsen/logrus.Logger).Debugf]&#10;at config.go:67: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.setDefaults]&#10;at config.go:47: calling [gopkg.in/yaml.v3.Marshal]&#10;at config.go:70: calling [(*github.com/go&#45;i2p/logger.Logger).Warnf]&#10;at config.go:72: calling [github.com/spf13/viper.ConfigFileUsed]&#10;at config.go:63: calling [github.com/spf13/viper.SetConfigType]&#10;at config.go:25: calling [github.com/spf13/viper.SetConfigFile]&#10;at config.go:62: calling [github.com/spf13/viper.SetConfigName]&#10;at config.go:76: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig]&#10;at config.go:69: calling [github.com/spf13/viper.ReadInConfig]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M86.4951,-384C86.4951,-384 27.8345,-384 27.8345,-384 21.8345,-384 15.8345,-378 15.8345,-372 15.8345,-372 15.8345,-360 15.8345,-360 15.8345,-354 21.8345,-348 27.8345,-348 27.8345,-348 86.4951,-348 86.4951,-348 92.4951,-348 98.4951,-354 98.4951,-360 98.4951,-360 98.4951,-372 98.4951,-372 98.4951,-378 92.4951,-384 86.4951,-384"/>
<text text-anchor="middle" x="57.1648" y="-361.8" font-family="Verdana" font-size="14.00" fill="#000000">InitConfig</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig -->
<g id="edge22" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig</title>
<g id="a_edge22"><a xlink:title="at config.go:76: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig]">
<path fill="none" stroke="#000000" d="M59.6612,-347.7336C67.8983,-289.9377 95.897,-112.4308 134.3296,-71 142.0256,-62.7036 151.6642,-56.2674 161.9919,-51.2744"/>
<polygon fill="#000000" stroke="#000000" points="163.45,-54.457 171.2138,-47.2477 160.6487,-48.0419 163.45,-54.457"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig -->
<g id="edge5" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig</title>
<g id="a_edge5"><a xlink:title="at config.go:41: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]&#10;at config.go:42: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]&#10;at config.go:43: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]&#10;at config.go:44: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]">
<path fill="none" stroke="#000000" d="M60.5914,-384.1687C69.7579,-427.0742 99.2234,-534.4829 171.3296,-580 188.2431,-590.6767 296.989,-593.0655 375.3532,-593.3684"/>
<polygon fill="#000000" stroke="#000000" points="375.7038,-596.8693 385.7135,-593.3972 375.7233,-589.8693 375.7038,-596.8693"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.setDefaults -->
<g id="edge10" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.setDefaults</title>
<g id="a_edge10"><a xlink:title="at config.go:67: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.setDefaults]">
<path fill="none" stroke="#000000" d="M62.41,-347.7554C74.8624,-307.4311 109.8568,-209.808 171.3296,-153 176.6761,-148.0592 182.9367,-143.8195 189.4828,-140.2058"/>
<polygon fill="#000000" stroke="#000000" points="191.1647,-143.2777 198.5273,-135.6591 188.0206,-137.0235 191.1647,-143.2777"/>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig | defined in config.go:19&#10;at config.go:72: calling [github.com/spf13/viper.ConfigFileUsed]&#10;at config.go:62: calling [github.com/spf13/viper.SetConfigName]&#10;at config.go:70: calling [(*github.com/go&#45;i2p/logger.Logger).Warnf]&#10;at config.go:61: calling [github.com/spf13/viper.AddConfigPath]&#10;at config.go:63: calling [github.com/spf13/viper.SetConfigType]&#10;at config.go:41: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]&#10;at config.go:42: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]&#10;at config.go:43: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]&#10;at config.go:44: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]&#10;at config.go:76: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig]&#10;at config.go:25: calling [github.com/spf13/viper.SetConfigFile]&#10;at config.go:69: calling [github.com/spf13/viper.ReadInConfig]&#10;at config.go:31: calling [(*github.com/sirupsen/logrus.Logger).Fatalf]&#10;at config.go:49: calling [(*github.com/sirupsen/logrus.Logger).Fatalf]&#10;at config.go:54: calling [(*github.com/sirupsen/logrus.Logger).Fatalf]&#10;at config.go:67: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.setDefaults]&#10;at config.go:47: calling [gopkg.in/yaml.v3.Marshal]&#10;at config.go:57: calling [(*github.com/sirupsen/logrus.Logger).Debugf]&#10;at config.go:72: calling [(*github.com/sirupsen/logrus.Logger).Debugf]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M86.4951,-445C86.4951,-445 27.8345,-445 27.8345,-445 21.8345,-445 15.8345,-439 15.8345,-433 15.8345,-433 15.8345,-421 15.8345,-421 15.8345,-415 21.8345,-409 27.8345,-409 27.8345,-409 86.4951,-409 86.4951,-409 92.4951,-409 98.4951,-415 98.4951,-421 98.4951,-421 98.4951,-433 98.4951,-433 98.4951,-439 92.4951,-445 86.4951,-445"/>
<text text-anchor="middle" x="57.1648" y="-422.8" font-family="Verdana" font-size="14.00" fill="#000000">InitConfig</text>
</a>
</g>
</g>
<!-- github.com/spf13/viper.SetConfigFile -->
<g id="node14" class="node">
<g id="node2" class="node">
<title>github.com/spf13/viper.SetConfigFile</title>
<g id="a_node14"><a xlink:title="github.com/spf13/viper.SetConfigFile | defined in viper.go:509">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M281.0929,-201C281.0929,-201 202.9829,-201 202.9829,-201 196.9829,-201 190.9829,-195 190.9829,-189 190.9829,-189 190.9829,-177 190.9829,-177 190.9829,-171 196.9829,-165 202.9829,-165 202.9829,-165 281.0929,-165 281.0929,-165 287.0929,-165 293.0929,-171 293.0929,-177 293.0929,-177 293.0929,-189 293.0929,-189 293.0929,-195 287.0929,-201 281.0929,-201"/>
<text text-anchor="middle" x="242.0379" y="-187.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
<text text-anchor="middle" x="242.0379" y="-170.4" font-family="Verdana" font-size="14.00" fill="#000000">SetConfigFile</text>
<g id="a_node2"><a xlink:title="github.com/spf13/viper.SetConfigFile | defined in viper.go:509">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M281.0929,-113C281.0929,-113 202.9829,-113 202.9829,-113 196.9829,-113 190.9829,-107 190.9829,-101 190.9829,-101 190.9829,-89 190.9829,-89 190.9829,-83 196.9829,-77 202.9829,-77 202.9829,-77 281.0929,-77 281.0929,-77 287.0929,-77 293.0929,-83 293.0929,-89 293.0929,-89 293.0929,-101 293.0929,-101 293.0929,-107 287.0929,-113 281.0929,-113"/>
<text text-anchor="middle" x="242.0379" y="-99.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
<text text-anchor="middle" x="242.0379" y="-82.4" font-family="Verdana" font-size="14.00" fill="#000000">SetConfigFile</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/spf13/viper.SetConfigFile -->
<g id="edge20" class="edge">
<g id="edge17" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/spf13/viper.SetConfigFile</title>
<g id="a_edge20"><a xlink:title="at config.go:25: calling [github.com/spf13/viper.SetConfigFile]">
<path fill="none" stroke="#8b4513" d="M66.7557,-347.6781C83.9212,-316.4408 122.6923,-252.5246 171.3296,-214 174.9135,-211.1613 178.7976,-208.5287 182.8383,-206.0977"/>
<polygon fill="#8b4513" stroke="#8b4513" points="184.8229,-208.9997 191.8786,-201.0961 181.4341,-202.8746 184.8229,-208.9997"/>
<g id="a_edge17"><a xlink:title="at config.go:25: calling [github.com/spf13/viper.SetConfigFile]">
<path fill="none" stroke="#8b4513" d="M59.6612,-408.7336C67.8983,-350.9377 95.897,-173.4308 134.3296,-132 146.5817,-118.7921 163.757,-110.299 180.7987,-104.8377"/>
<polygon fill="#8b4513" stroke="#8b4513" points="182.1403,-108.0935 190.779,-101.9597 180.2007,-101.3675 182.1403,-108.0935"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.setDefaults -->
<g id="node3" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.setDefaults</title>
<g id="a_node3"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/config.setDefaults | defined in config.go:79&#10;at config.go:81: calling [github.com/spf13/viper.SetDefault]&#10;at config.go:82: calling [github.com/spf13/viper.SetDefault]&#10;at config.go:85: calling [github.com/spf13/viper.SetDefault]&#10;at config.go:88: calling [github.com/spf13/viper.SetDefault]&#10;at config.go:89: calling [github.com/spf13/viper.SetDefault]&#10;at config.go:81: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]&#10;at config.go:82: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M273.5099,-201C273.5099,-201 210.5659,-201 210.5659,-201 204.5659,-201 198.5659,-195 198.5659,-189 198.5659,-189 198.5659,-177 198.5659,-177 198.5659,-171 204.5659,-165 210.5659,-165 210.5659,-165 273.5099,-165 273.5099,-165 279.5099,-165 285.5099,-171 285.5099,-177 285.5099,-177 285.5099,-189 285.5099,-189 285.5099,-195 279.5099,-201 273.5099,-201"/>
<text text-anchor="middle" x="242.0379" y="-178.8" font-family="Verdana" font-size="14.00" fill="#000000">setDefaults</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.setDefaults -->
<g id="edge22" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.setDefaults</title>
<g id="a_edge22"><a xlink:title="at config.go:67: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.setDefaults]">
<path fill="none" stroke="#000000" d="M62.41,-408.7554C74.8624,-368.4311 109.8568,-270.808 171.3296,-214 176.6761,-209.0592 182.9367,-204.8195 189.4828,-201.2058"/>
<polygon fill="#000000" stroke="#000000" points="191.1647,-204.2777 198.5273,-196.6591 188.0206,-198.0235 191.1647,-204.2777"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig -->
<g id="node4" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig</title>
<g id="a_node4"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig | defined in router.go:44">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M516.6979,-235C516.6979,-235 397.7623,-235 397.7623,-235 391.7623,-235 385.7623,-229 385.7623,-223 385.7623,-223 385.7623,-211 385.7623,-211 385.7623,-205 391.7623,-199 397.7623,-199 397.7623,-199 516.6979,-199 516.6979,-199 522.6979,-199 528.6979,-205 528.6979,-211 528.6979,-211 528.6979,-223 528.6979,-223 528.6979,-229 522.6979,-235 516.6979,-235"/>
<text text-anchor="middle" x="457.2301" y="-212.8" font-family="Verdana" font-size="14.00" fill="#000000">DefaultRouterConfig</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig -->
<g id="edge12" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig</title>
<g id="a_edge12"><a xlink:title="at config.go:41: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]&#10;at config.go:42: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]&#10;at config.go:43: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]&#10;at config.go:44: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]">
<path fill="none" stroke="#000000" d="M58.2342,-408.7257C62.3308,-357.5636 81.7139,-212.7442 171.3296,-153 251.6114,-99.4785 297.5124,-147.955 385.7462,-187 391.5616,-189.5734 397.6655,-192.2189 403.7533,-194.8221"/>
<polygon fill="#000000" stroke="#000000" points="402.6903,-198.1732 413.2628,-198.8617 405.4272,-191.7304 402.6903,-198.1732"/>
</a>
</g>
</g>
<!-- github.com/spf13/viper.ReadInConfig -->
<g id="node15" class="node">
<g id="node6" class="node">
<title>github.com/spf13/viper.ReadInConfig</title>
<g id="a_node15"><a xlink:title="github.com/spf13/viper.ReadInConfig | defined in viper.go:1632">
<g id="a_node6"><a xlink:title="github.com/spf13/viper.ReadInConfig | defined in viper.go:1632">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M281.8526,-262C281.8526,-262 202.2232,-262 202.2232,-262 196.2232,-262 190.2232,-256 190.2232,-250 190.2232,-250 190.2232,-238 190.2232,-238 190.2232,-232 196.2232,-226 202.2232,-226 202.2232,-226 281.8526,-226 281.8526,-226 287.8526,-226 293.8526,-232 293.8526,-238 293.8526,-238 293.8526,-250 293.8526,-250 293.8526,-256 287.8526,-262 281.8526,-262"/>
<text text-anchor="middle" x="242.0379" y="-248.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
<text text-anchor="middle" x="242.0379" y="-231.4" font-family="Verdana" font-size="14.00" fill="#000000">ReadInConfig</text>
@ -327,18 +105,18 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/spf13/viper.ReadInConfig -->
<g id="edge25" class="edge">
<g id="edge18" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/spf13/viper.ReadInConfig</title>
<g id="a_edge25"><a xlink:title="at config.go:69: calling [github.com/spf13/viper.ReadInConfig]">
<path fill="none" stroke="#8b4513" d="M76.6135,-347.8716C98.4485,-328.1682 135.5252,-296.6121 171.3296,-275 176.255,-272.027 181.5164,-269.1794 186.8628,-266.4989"/>
<polygon fill="#8b4513" stroke="#8b4513" points="188.4024,-269.6422 195.8962,-262.1527 185.3675,-263.3343 188.4024,-269.6422"/>
<g id="a_edge18"><a xlink:title="at config.go:69: calling [github.com/spf13/viper.ReadInConfig]">
<path fill="none" stroke="#8b4513" d="M66.7557,-408.6781C83.9212,-377.4408 122.6923,-313.5246 171.3296,-275 174.9135,-272.1613 178.7976,-269.5287 182.8383,-267.0977"/>
<polygon fill="#8b4513" stroke="#8b4513" points="184.8229,-269.9997 191.8786,-262.0961 181.4341,-263.8746 184.8229,-269.9997"/>
</a>
</g>
</g>
<!-- github.com/spf13/viper.AddConfigPath -->
<g id="node16" class="node">
<g id="node7" class="node">
<title>github.com/spf13/viper.AddConfigPath</title>
<g id="a_node16"><a xlink:title="github.com/spf13/viper.AddConfigPath | defined in viper.go:574">
<g id="a_node7"><a xlink:title="github.com/spf13/viper.AddConfigPath | defined in viper.go:574">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M285.9202,-323C285.9202,-323 198.1556,-323 198.1556,-323 192.1556,-323 186.1556,-317 186.1556,-311 186.1556,-311 186.1556,-299 186.1556,-299 186.1556,-293 192.1556,-287 198.1556,-287 198.1556,-287 285.9202,-287 285.9202,-287 291.9202,-287 297.9202,-293 297.9202,-299 297.9202,-299 297.9202,-311 297.9202,-311 297.9202,-317 291.9202,-323 285.9202,-323"/>
<text text-anchor="middle" x="242.0379" y="-309.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
<text text-anchor="middle" x="242.0379" y="-292.4" font-family="Verdana" font-size="14.00" fill="#000000">AddConfigPath</text>
@ -346,18 +124,18 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/spf13/viper.AddConfigPath -->
<g id="edge3" class="edge">
<g id="edge10" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/spf13/viper.AddConfigPath</title>
<g id="a_edge3"><a xlink:title="at config.go:61: calling [github.com/spf13/viper.AddConfigPath]">
<path fill="none" stroke="#8b4513" d="M98.6539,-352.3104C121.9783,-344.6144 151.5964,-334.8417 177.8508,-326.1789"/>
<polygon fill="#8b4513" stroke="#8b4513" points="178.9537,-329.5007 187.3534,-323.0435 176.7603,-322.8532 178.9537,-329.5007"/>
<g id="a_edge10"><a xlink:title="at config.go:61: calling [github.com/spf13/viper.AddConfigPath]">
<path fill="none" stroke="#8b4513" d="M76.6135,-408.8716C98.4485,-389.1682 135.5252,-357.6121 171.3296,-336 176.255,-333.027 181.5164,-330.1794 186.8628,-327.4989"/>
<polygon fill="#8b4513" stroke="#8b4513" points="188.4024,-330.6422 195.8962,-323.1527 185.3675,-324.3343 188.4024,-330.6422"/>
</a>
</g>
</g>
<!-- github.com/spf13/viper.SetConfigName -->
<g id="node17" class="node">
<g id="node8" class="node">
<title>github.com/spf13/viper.SetConfigName</title>
<g id="a_node17"><a xlink:title="github.com/spf13/viper.SetConfigName | defined in viper.go:2174">
<g id="a_node8"><a xlink:title="github.com/spf13/viper.SetConfigName | defined in viper.go:2174">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M287.2401,-384C287.2401,-384 196.8357,-384 196.8357,-384 190.8357,-384 184.8357,-378 184.8357,-372 184.8357,-372 184.8357,-360 184.8357,-360 184.8357,-354 190.8357,-348 196.8357,-348 196.8357,-348 287.2401,-348 287.2401,-348 293.2401,-348 299.2401,-354 299.2401,-360 299.2401,-360 299.2401,-372 299.2401,-372 299.2401,-378 293.2401,-384 287.2401,-384"/>
<text text-anchor="middle" x="242.0379" y="-370.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
<text text-anchor="middle" x="242.0379" y="-353.4" font-family="Verdana" font-size="14.00" fill="#000000">SetConfigName</text>
@ -365,18 +143,18 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/spf13/viper.SetConfigName -->
<g id="edge21" class="edge">
<g id="edge6" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/spf13/viper.SetConfigName</title>
<g id="a_edge21"><a xlink:title="at config.go:62: calling [github.com/spf13/viper.SetConfigName]">
<path fill="none" stroke="#8b4513" d="M98.6539,-366C121.0164,-366 149.1643,-366 174.5862,-366"/>
<polygon fill="#8b4513" stroke="#8b4513" points="174.9165,-369.5001 184.9165,-366 174.9164,-362.5001 174.9165,-369.5001"/>
<g id="a_edge6"><a xlink:title="at config.go:62: calling [github.com/spf13/viper.SetConfigName]">
<path fill="none" stroke="#8b4513" d="M98.6539,-413.3104C121.9783,-405.6144 151.5964,-395.8417 177.8508,-387.1789"/>
<polygon fill="#8b4513" stroke="#8b4513" points="178.9537,-390.5007 187.3534,-384.0435 176.7603,-383.8532 178.9537,-390.5007"/>
</a>
</g>
</g>
<!-- github.com/spf13/viper.SetConfigType -->
<g id="node18" class="node">
<g id="node9" class="node">
<title>github.com/spf13/viper.SetConfigType</title>
<g id="a_node18"><a xlink:title="github.com/spf13/viper.SetConfigType | defined in viper.go:2185">
<g id="a_node9"><a xlink:title="github.com/spf13/viper.SetConfigType | defined in viper.go:2185">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M284.5817,-445C284.5817,-445 199.4941,-445 199.4941,-445 193.4941,-445 187.4941,-439 187.4941,-433 187.4941,-433 187.4941,-421 187.4941,-421 187.4941,-415 193.4941,-409 199.4941,-409 199.4941,-409 284.5817,-409 284.5817,-409 290.5817,-409 296.5817,-415 296.5817,-421 296.5817,-421 296.5817,-433 296.5817,-433 296.5817,-439 290.5817,-445 284.5817,-445"/>
<text text-anchor="middle" x="242.0379" y="-431.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
<text text-anchor="middle" x="242.0379" y="-414.4" font-family="Verdana" font-size="14.00" fill="#000000">SetConfigType</text>
@ -384,18 +162,18 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/spf13/viper.SetConfigType -->
<g id="edge14" class="edge">
<g id="edge11" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/spf13/viper.SetConfigType</title>
<g id="a_edge14"><a xlink:title="at config.go:63: calling [github.com/spf13/viper.SetConfigType]">
<path fill="none" stroke="#8b4513" d="M98.6539,-379.6896C121.9783,-387.3856 151.5964,-397.1583 177.8508,-405.8211"/>
<polygon fill="#8b4513" stroke="#8b4513" points="176.7603,-409.1468 187.3534,-408.9565 178.9537,-402.4993 176.7603,-409.1468"/>
<g id="a_edge11"><a xlink:title="at config.go:63: calling [github.com/spf13/viper.SetConfigType]">
<path fill="none" stroke="#8b4513" d="M98.6539,-427C121.7737,-427 151.0773,-427 177.1591,-427"/>
<polygon fill="#8b4513" stroke="#8b4513" points="177.3534,-430.5001 187.3534,-427 177.3534,-423.5001 177.3534,-430.5001"/>
</a>
</g>
</g>
<!-- gopkg.in/yaml.v3.Marshal -->
<g id="node19" class="node">
<g id="node10" class="node">
<title>gopkg.in/yaml.v3.Marshal</title>
<g id="a_node19"><a xlink:title="gopkg.in/yaml.v3.Marshal | defined in yaml.go:218">
<g id="a_node10"><a xlink:title="gopkg.in/yaml.v3.Marshal | defined in yaml.go:218">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M264.9076,-506C264.9076,-506 219.1682,-506 219.1682,-506 213.1682,-506 207.1682,-500 207.1682,-494 207.1682,-494 207.1682,-482 207.1682,-482 207.1682,-476 213.1682,-470 219.1682,-470 219.1682,-470 264.9076,-470 264.9076,-470 270.9076,-470 276.9076,-476 276.9076,-482 276.9076,-482 276.9076,-494 276.9076,-494 276.9076,-500 270.9076,-506 264.9076,-506"/>
<text text-anchor="middle" x="242.0379" y="-492.2" font-family="Verdana" font-size="14.00" fill="#000000">yaml</text>
<text text-anchor="middle" x="242.0379" y="-475.4" font-family="Verdana" font-size="14.00" fill="#000000">Marshal</text>
@ -403,39 +181,67 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;gopkg.in/yaml.v3.Marshal -->
<g id="edge11" class="edge">
<g id="edge23" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;gopkg.in/yaml.v3.Marshal</title>
<g id="a_edge11"><a xlink:title="at config.go:47: calling [gopkg.in/yaml.v3.Marshal]">
<path fill="none" stroke="#8b4513" d="M76.1343,-384.065C97.8401,-404.0469 135.0821,-436.2831 171.3296,-458 179.5648,-462.9339 188.7601,-467.4654 197.7243,-471.4305"/>
<polygon fill="#8b4513" stroke="#8b4513" points="196.3604,-474.6538 206.9323,-475.3507 199.1024,-468.2132 196.3604,-474.6538"/>
<g id="a_edge23"><a xlink:title="at config.go:47: calling [gopkg.in/yaml.v3.Marshal]">
<path fill="none" stroke="#8b4513" d="M98.6539,-440.6896C127.9217,-450.3467 167.0992,-463.2735 197.1058,-473.1744"/>
<polygon fill="#8b4513" stroke="#8b4513" points="196.3096,-476.5972 206.9028,-476.4069 198.503,-469.9497 196.3096,-476.5972"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig -->
<g id="node11" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig</title>
<g id="a_node11"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig | defined in config.go:92&#10;at config.go:110: calling [github.com/spf13/viper.GetInt]&#10;at config.go:104: calling [github.com/spf13/viper.UnmarshalKey]&#10;at config.go:105: calling [(*github.com/go&#45;i2p/logger.Logger).Warnf]&#10;at config.go:94: calling [github.com/spf13/viper.GetString]&#10;at config.go:95: calling [github.com/spf13/viper.GetString]&#10;at config.go:99: calling [github.com/spf13/viper.GetString]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M300.9551,-567C300.9551,-567 183.1207,-567 183.1207,-567 177.1207,-567 171.1207,-561 171.1207,-555 171.1207,-555 171.1207,-543 171.1207,-543 171.1207,-537 177.1207,-531 183.1207,-531 183.1207,-531 300.9551,-531 300.9551,-531 306.9551,-531 312.9551,-537 312.9551,-543 312.9551,-543 312.9551,-555 312.9551,-555 312.9551,-561 306.9551,-567 300.9551,-567"/>
<text text-anchor="middle" x="242.0379" y="-544.8" font-family="Verdana" font-size="14.00" fill="#000000">UpdateRouterConfig</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig -->
<g id="edge15" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig</title>
<g id="a_edge15"><a xlink:title="at config.go:76: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig]">
<path fill="none" stroke="#000000" d="M76.1343,-445.065C97.8401,-465.0469 135.0821,-497.2831 171.3296,-519 175.7211,-521.6311 180.3856,-524.1477 185.1426,-526.525"/>
<polygon fill="#000000" stroke="#000000" points="183.824,-529.7738 194.3568,-530.9185 186.8368,-523.4553 183.824,-529.7738"/>
</a>
</g>
</g>
<!-- github.com/spf13/viper.ConfigFileUsed -->
<g id="node20" class="node">
<g id="node15" class="node">
<title>github.com/spf13/viper.ConfigFileUsed</title>
<g id="a_node20"><a xlink:title="github.com/spf13/viper.ConfigFileUsed | defined in viper.go:569">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M286.9707,-567C286.9707,-567 197.1051,-567 197.1051,-567 191.1051,-567 185.1051,-561 185.1051,-555 185.1051,-555 185.1051,-543 185.1051,-543 185.1051,-537 191.1051,-531 197.1051,-531 197.1051,-531 286.9707,-531 286.9707,-531 292.9707,-531 298.9707,-537 298.9707,-543 298.9707,-543 298.9707,-555 298.9707,-555 298.9707,-561 292.9707,-567 286.9707,-567"/>
<text text-anchor="middle" x="242.0379" y="-553.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
<text text-anchor="middle" x="242.0379" y="-536.4" font-family="Verdana" font-size="14.00" fill="#000000">ConfigFileUsed</text>
<g id="a_node15"><a xlink:title="github.com/spf13/viper.ConfigFileUsed | defined in viper.go:569">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M286.9707,-628C286.9707,-628 197.1051,-628 197.1051,-628 191.1051,-628 185.1051,-622 185.1051,-616 185.1051,-616 185.1051,-604 185.1051,-604 185.1051,-598 191.1051,-592 197.1051,-592 197.1051,-592 286.9707,-592 286.9707,-592 292.9707,-592 298.9707,-598 298.9707,-604 298.9707,-604 298.9707,-616 298.9707,-616 298.9707,-622 292.9707,-628 286.9707,-628"/>
<text text-anchor="middle" x="242.0379" y="-614.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
<text text-anchor="middle" x="242.0379" y="-597.4" font-family="Verdana" font-size="14.00" fill="#000000">ConfigFileUsed</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/spf13/viper.ConfigFileUsed -->
<g id="edge13" class="edge">
<g id="edge1" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;github.com/spf13/viper.ConfigFileUsed</title>
<g id="a_edge13"><a xlink:title="at config.go:72: calling [github.com/spf13/viper.ConfigFileUsed]">
<path fill="none" stroke="#8b4513" d="M66.4064,-384.0067C83.3121,-415.3611 122.0575,-480.3233 171.3296,-519 174.4846,-521.4766 177.8743,-523.7853 181.4,-525.9314"/>
<polygon fill="#8b4513" stroke="#8b4513" points="179.9481,-529.1289 190.3879,-530.9344 183.3526,-523.0126 179.9481,-529.1289"/>
<g id="a_edge1"><a xlink:title="at config.go:72: calling [github.com/spf13/viper.ConfigFileUsed]">
<path fill="none" stroke="#8b4513" d="M66.4064,-445.0067C83.3121,-476.3611 122.0575,-541.3233 171.3296,-580 174.4846,-582.4766 177.8743,-584.7853 181.4,-586.9314"/>
<polygon fill="#8b4513" stroke="#8b4513" points="179.9481,-590.1289 190.3879,-591.9344 183.3526,-584.0126 179.9481,-590.1289"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/logger.Logger).Warnf -->
<g id="node21" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).Warnf</title>
<g id="a_node21"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).Warnf | defined in log.go:36">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M474.9964,-672C474.9964,-672 439.4638,-672 439.4638,-672 433.4638,-672 427.4638,-666 427.4638,-660 427.4638,-660 427.4638,-648 427.4638,-648 427.4638,-642 433.4638,-636 439.4638,-636 439.4638,-636 474.9964,-636 474.9964,-636 480.9964,-636 486.9964,-642 486.9964,-648 486.9964,-648 486.9964,-660 486.9964,-660 486.9964,-666 480.9964,-672 474.9964,-672"/>
<text text-anchor="middle" x="457.2301" y="-658.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="457.2301" y="-641.4" font-family="Verdana" font-size="14.00" fill="#000000">Warnf</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warnf -->
<g id="edge12" class="edge">
<g id="edge7" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warnf</title>
<g id="a_edge12"><a xlink:title="at config.go:70: calling [(*github.com/go&#45;i2p/logger.Logger).Warnf]">
<path fill="none" stroke="#8b4513" d="M58.2342,-347.7257C62.3308,-296.5636 81.7139,-151.7442 171.3296,-92 223.6254,-57.1359 257.9583,-61.2001 312.7462,-92 367.1635,-122.5916 336.4839,-173.6553 385.7462,-212 394.8465,-219.0835 406.2361,-223.8999 417.2313,-227.1698"/>
<polygon fill="#8b4513" stroke="#8b4513" points="416.5811,-230.6173 427.1411,-229.7586 418.3504,-223.8446 416.5811,-230.6173"/>
<g id="a_edge7"><a xlink:title="at config.go:70: calling [(*github.com/go&#45;i2p/logger.Logger).Warnf]">
<path fill="none" stroke="#8b4513" d="M60.5914,-445.1687C69.7579,-488.0742 99.2234,-595.4829 171.3296,-641 191.553,-653.766 343.0676,-654.6831 416.953,-654.3531"/>
<polygon fill="#8b4513" stroke="#8b4513" points="417.2853,-657.8514 427.2659,-654.2966 417.2469,-650.8515 417.2853,-657.8514"/>
</a>
</g>
</g>
@ -443,18 +249,18 @@
<g id="node22" class="node">
<title>(*github.com/sirupsen/logrus.Logger).Fatalf</title>
<g id="a_node22"><a xlink:title="(*github.com/sirupsen/logrus.Logger).Fatalf | defined in logger.go:189">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M259.5337,-733C259.5337,-733 224.5421,-733 224.5421,-733 218.5421,-733 212.5421,-727 212.5421,-721 212.5421,-721 212.5421,-709 212.5421,-709 212.5421,-703 218.5421,-697 224.5421,-697 224.5421,-697 259.5337,-697 259.5337,-697 265.5337,-697 271.5337,-703 271.5337,-709 271.5337,-709 271.5337,-721 271.5337,-721 271.5337,-727 265.5337,-733 259.5337,-733"/>
<text text-anchor="middle" x="242.0379" y="-719.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
<text text-anchor="middle" x="242.0379" y="-702.4" font-family="Verdana" font-size="14.00" fill="#000000">Fatalf</text>
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M259.5337,-794C259.5337,-794 224.5421,-794 224.5421,-794 218.5421,-794 212.5421,-788 212.5421,-782 212.5421,-782 212.5421,-770 212.5421,-770 212.5421,-764 218.5421,-758 224.5421,-758 224.5421,-758 259.5337,-758 259.5337,-758 265.5337,-758 271.5337,-764 271.5337,-770 271.5337,-770 271.5337,-782 271.5337,-782 271.5337,-788 265.5337,-794 259.5337,-794"/>
<text text-anchor="middle" x="242.0379" y="-780.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
<text text-anchor="middle" x="242.0379" y="-763.4" font-family="Verdana" font-size="14.00" fill="#000000">Fatalf</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;(*github.com/sirupsen/logrus.Logger).Fatalf -->
<g id="edge4" class="edge">
<g id="edge19" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;(*github.com/sirupsen/logrus.Logger).Fatalf</title>
<g id="a_edge4"><a xlink:title="at config.go:31: calling [(*github.com/sirupsen/logrus.Logger).Fatalf]&#10;at config.go:49: calling [(*github.com/sirupsen/logrus.Logger).Fatalf]&#10;at config.go:54: calling [(*github.com/sirupsen/logrus.Logger).Fatalf]">
<path fill="none" stroke="#8b4513" d="M58.2044,-384.1411C62.2835,-438.0873 81.7586,-599.0854 171.3296,-685 180.1126,-693.4245 191.6201,-699.6551 202.793,-704.1854"/>
<polygon fill="#8b4513" stroke="#8b4513" points="201.8553,-707.5698 212.4488,-707.7413 204.2744,-701.0011 201.8553,-707.5698"/>
<g id="a_edge19"><a xlink:title="at config.go:31: calling [(*github.com/sirupsen/logrus.Logger).Fatalf]&#10;at config.go:49: calling [(*github.com/sirupsen/logrus.Logger).Fatalf]&#10;at config.go:54: calling [(*github.com/sirupsen/logrus.Logger).Fatalf]">
<path fill="none" stroke="#8b4513" d="M58.2044,-445.1411C62.2835,-499.0873 81.7586,-660.0854 171.3296,-746 180.1126,-754.4245 191.6201,-760.6551 202.793,-765.1854"/>
<polygon fill="#8b4513" stroke="#8b4513" points="201.8553,-768.5698 212.4488,-768.7413 204.2744,-762.0011 201.8553,-768.5698"/>
</a>
</g>
</g>
@ -462,18 +268,212 @@
<g id="node23" class="node">
<title>(*github.com/sirupsen/logrus.Logger).Debugf</title>
<g id="a_node23"><a xlink:title="(*github.com/sirupsen/logrus.Logger).Debugf | defined in logger.go:163">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M263.0197,-672C263.0197,-672 221.0561,-672 221.0561,-672 215.0561,-672 209.0561,-666 209.0561,-660 209.0561,-660 209.0561,-648 209.0561,-648 209.0561,-642 215.0561,-636 221.0561,-636 221.0561,-636 263.0197,-636 263.0197,-636 269.0197,-636 275.0197,-642 275.0197,-648 275.0197,-648 275.0197,-660 275.0197,-660 275.0197,-666 269.0197,-672 263.0197,-672"/>
<text text-anchor="middle" x="242.0379" y="-658.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
<text text-anchor="middle" x="242.0379" y="-641.4" font-family="Verdana" font-size="14.00" fill="#000000">Debugf</text>
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M263.0197,-733C263.0197,-733 221.0561,-733 221.0561,-733 215.0561,-733 209.0561,-727 209.0561,-721 209.0561,-721 209.0561,-709 209.0561,-709 209.0561,-703 215.0561,-697 221.0561,-697 221.0561,-697 263.0197,-697 263.0197,-697 269.0197,-697 275.0197,-703 275.0197,-709 275.0197,-709 275.0197,-721 275.0197,-721 275.0197,-727 269.0197,-733 263.0197,-733"/>
<text text-anchor="middle" x="242.0379" y="-719.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
<text text-anchor="middle" x="242.0379" y="-702.4" font-family="Verdana" font-size="14.00" fill="#000000">Debugf</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debugf -->
<g id="edge6" class="edge">
<g id="edge24" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.InitConfig&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debugf</title>
<g id="a_edge6"><a xlink:title="at config.go:57: calling [(*github.com/sirupsen/logrus.Logger).Debugf]&#10;at config.go:72: calling [(*github.com/sirupsen/logrus.Logger).Debugf]">
<path fill="none" stroke="#8b4513" d="M59.7631,-384.1644C66.3637,-425.5229 86.7448,-528.6433 134.3296,-600 146.392,-618.0884 152.3268,-621.4366 171.3296,-632 179.9196,-636.7751 189.6845,-640.6601 199.1566,-643.7608"/>
<polygon fill="#8b4513" stroke="#8b4513" points="198.2743,-647.1507 208.8601,-646.7126 200.3116,-640.4537 198.2743,-647.1507"/>
<g id="a_edge24"><a xlink:title="at config.go:57: calling [(*github.com/sirupsen/logrus.Logger).Debugf]&#10;at config.go:72: calling [(*github.com/sirupsen/logrus.Logger).Debugf]">
<path fill="none" stroke="#8b4513" d="M59.7631,-445.1644C66.3637,-486.5229 86.7448,-589.6433 134.3296,-661 146.392,-679.0884 152.3268,-682.4366 171.3296,-693 179.9196,-697.7751 189.6845,-701.6601 199.1566,-704.7608"/>
<polygon fill="#8b4513" stroke="#8b4513" points="198.2743,-708.1507 208.8601,-707.7126 200.3116,-701.4537 198.2743,-708.1507"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.setDefaults&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig -->
<g id="edge9" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.setDefaults&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig</title>
<g id="a_edge9"><a xlink:title="at config.go:81: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]&#10;at config.go:82: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]">
<path fill="none" stroke="#000000" d="M285.5853,-189.8804C311.2942,-193.9424 344.6737,-199.2163 375.1536,-204.0321"/>
<polygon fill="#000000" stroke="#000000" points="374.9402,-207.5417 385.3639,-205.6453 376.0327,-200.6274 374.9402,-207.5417"/>
</a>
</g>
</g>
<!-- github.com/spf13/viper.SetDefault -->
<g id="node5" class="node">
<title>github.com/spf13/viper.SetDefault</title>
<g id="a_node5"><a xlink:title="github.com/spf13/viper.SetDefault | defined in viper.go:1596">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M487.0956,-296C487.0956,-296 427.3646,-296 427.3646,-296 421.3646,-296 415.3646,-290 415.3646,-284 415.3646,-284 415.3646,-272 415.3646,-272 415.3646,-266 421.3646,-260 427.3646,-260 427.3646,-260 487.0956,-260 487.0956,-260 493.0956,-260 499.0956,-266 499.0956,-272 499.0956,-272 499.0956,-284 499.0956,-284 499.0956,-290 493.0956,-296 487.0956,-296"/>
<text text-anchor="middle" x="457.2301" y="-282.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
<text text-anchor="middle" x="457.2301" y="-265.4" font-family="Verdana" font-size="14.00" fill="#000000">SetDefault</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.setDefaults&#45;&gt;github.com/spf13/viper.SetDefault -->
<g id="edge5" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.setDefaults&#45;&gt;github.com/spf13/viper.SetDefault</title>
<g id="a_edge5"><a xlink:title="at config.go:81: calling [github.com/spf13/viper.SetDefault]&#10;at config.go:82: calling [github.com/spf13/viper.SetDefault]&#10;at config.go:85: calling [github.com/spf13/viper.SetDefault]&#10;at config.go:88: calling [github.com/spf13/viper.SetDefault]&#10;at config.go:89: calling [github.com/spf13/viper.SetDefault]">
<path fill="none" stroke="#8b4513" d="M283.6095,-201.0383C293.1974,-205.2506 303.3415,-209.7489 312.7462,-214 345.36,-228.742 353.0167,-233.5166 385.7462,-248 392.1136,-250.8177 398.8267,-253.7217 405.4859,-256.5621"/>
<polygon fill="#8b4513" stroke="#8b4513" points="404.5842,-259.9812 415.1572,-260.6606 407.3156,-253.5361 404.5842,-259.9812"/>
</a>
</g>
</g>
<!-- github.com/spf13/viper.GetString -->
<g id="node12" class="node">
<title>github.com/spf13/viper.GetString</title>
<g id="a_node12"><a xlink:title="github.com/spf13/viper.GetString | defined in viper.go:975">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M484.6675,-472C484.6675,-472 429.7927,-472 429.7927,-472 423.7927,-472 417.7927,-466 417.7927,-460 417.7927,-460 417.7927,-448 417.7927,-448 417.7927,-442 423.7927,-436 429.7927,-436 429.7927,-436 484.6675,-436 484.6675,-436 490.6675,-436 496.6675,-442 496.6675,-448 496.6675,-448 496.6675,-460 496.6675,-460 496.6675,-466 490.6675,-472 484.6675,-472"/>
<text text-anchor="middle" x="457.2301" y="-458.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
<text text-anchor="middle" x="457.2301" y="-441.4" font-family="Verdana" font-size="14.00" fill="#000000">GetString</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig&#45;&gt;github.com/spf13/viper.GetString -->
<g id="edge20" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig&#45;&gt;github.com/spf13/viper.GetString</title>
<g id="a_edge20"><a xlink:title="at config.go:94: calling [github.com/spf13/viper.GetString]&#10;at config.go:95: calling [github.com/spf13/viper.GetString]&#10;at config.go:99: calling [github.com/spf13/viper.GetString]">
<path fill="none" stroke="#8b4513" d="M285.1417,-530.9925C294.2808,-527.0961 303.8521,-522.9566 312.7462,-519 345.4473,-504.4527 353.103,-499.6768 385.7462,-485 393.114,-481.6874 400.9343,-478.2333 408.5951,-474.884"/>
<polygon fill="#8b4513" stroke="#8b4513" points="410.0483,-478.0687 417.8193,-470.8672 407.2535,-471.6508 410.0483,-478.0687"/>
</a>
</g>
</g>
<!-- github.com/spf13/viper.UnmarshalKey -->
<g id="node13" class="node">
<title>github.com/spf13/viper.UnmarshalKey</title>
<g id="a_node13"><a xlink:title="github.com/spf13/viper.UnmarshalKey | defined in viper.go:1103">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M499.4738,-533C499.4738,-533 414.9864,-533 414.9864,-533 408.9864,-533 402.9864,-527 402.9864,-521 402.9864,-521 402.9864,-509 402.9864,-509 402.9864,-503 408.9864,-497 414.9864,-497 414.9864,-497 499.4738,-497 499.4738,-497 505.4738,-497 511.4738,-503 511.4738,-509 511.4738,-509 511.4738,-521 511.4738,-521 511.4738,-527 505.4738,-533 499.4738,-533"/>
<text text-anchor="middle" x="457.2301" y="-519.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
<text text-anchor="middle" x="457.2301" y="-502.4" font-family="Verdana" font-size="14.00" fill="#000000">UnmarshalKey</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig&#45;&gt;github.com/spf13/viper.UnmarshalKey -->
<g id="edge13" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig&#45;&gt;github.com/spf13/viper.UnmarshalKey</title>
<g id="a_edge13"><a xlink:title="at config.go:104: calling [github.com/spf13/viper.UnmarshalKey]">
<path fill="none" stroke="#8b4513" d="M312.7979,-537.82C338.5302,-533.7544 367.4592,-529.1836 392.6306,-525.2066"/>
<polygon fill="#8b4513" stroke="#8b4513" points="393.4713,-528.6173 402.8026,-523.5995 392.3788,-521.703 393.4713,-528.6173"/>
</a>
</g>
</g>
<!-- github.com/spf13/viper.GetInt -->
<g id="node14" class="node">
<title>github.com/spf13/viper.GetInt</title>
<g id="a_node14"><a xlink:title="github.com/spf13/viper.GetInt | defined in viper.go:989">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M474.9936,-594C474.9936,-594 439.4666,-594 439.4666,-594 433.4666,-594 427.4666,-588 427.4666,-582 427.4666,-582 427.4666,-570 427.4666,-570 427.4666,-564 433.4666,-558 439.4666,-558 439.4666,-558 474.9936,-558 474.9936,-558 480.9936,-558 486.9936,-564 486.9936,-570 486.9936,-570 486.9936,-582 486.9936,-582 486.9936,-588 480.9936,-594 474.9936,-594"/>
<text text-anchor="middle" x="457.2301" y="-580.2" font-family="Verdana" font-size="14.00" fill="#000000">viper</text>
<text text-anchor="middle" x="457.2301" y="-563.4" font-family="Verdana" font-size="14.00" fill="#000000">GetInt</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig&#45;&gt;github.com/spf13/viper.GetInt -->
<g id="edge8" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig&#45;&gt;github.com/spf13/viper.GetInt</title>
<g id="a_edge8"><a xlink:title="at config.go:110: calling [github.com/spf13/viper.GetInt]">
<path fill="none" stroke="#8b4513" d="M312.7979,-557.8782C347.3833,-562.2176 387.7433,-567.2815 416.9933,-570.9515"/>
<polygon fill="#8b4513" stroke="#8b4513" points="416.8776,-574.4644 427.2356,-572.2366 417.7491,-567.5188 416.8776,-574.4644"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warnf -->
<g id="edge14" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.UpdateRouterConfig&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warnf</title>
<g id="a_edge14"><a xlink:title="at config.go:105: calling [(*github.com/go&#45;i2p/logger.Logger).Warnf]">
<path fill="none" stroke="#8b4513" d="M287.2284,-567.1523C295.8575,-571.0805 304.7021,-575.4362 312.7462,-580 347.3927,-599.6568 350.0307,-614.36 385.7462,-632 395.6276,-636.8804 406.8143,-640.943 417.3547,-644.1935"/>
<polygon fill="#8b4513" stroke="#8b4513" points="416.6188,-647.6245 427.1986,-647.0614 418.5767,-640.9039 416.6188,-647.6245"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultBase -->
<g id="node16" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultBase</title>
<g id="a_node16"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultBase | defined in router.go:28&#10;at router.go:29: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.home]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M490.3115,-52C490.3115,-52 424.1487,-52 424.1487,-52 418.1487,-52 412.1487,-46 412.1487,-40 412.1487,-40 412.1487,-28 412.1487,-28 412.1487,-22 418.1487,-16 424.1487,-16 424.1487,-16 490.3115,-16 490.3115,-16 496.3115,-16 502.3115,-22 502.3115,-28 502.3115,-28 502.3115,-40 502.3115,-40 502.3115,-46 496.3115,-52 490.3115,-52"/>
<text text-anchor="middle" x="457.2301" y="-29.8" font-family="Verdana" font-size="14.00" fill="#000000">defaultBase</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.home -->
<g id="node17" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.home</title>
<g id="a_node17"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/config.home | defined in router.go:20">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M644.8719,-73C644.8719,-73 613.6613,-73 613.6613,-73 607.6613,-73 601.6613,-67 601.6613,-61 601.6613,-61 601.6613,-49 601.6613,-49 601.6613,-43 607.6613,-37 613.6613,-37 613.6613,-37 644.8719,-37 644.8719,-37 650.8719,-37 656.8719,-43 656.8719,-49 656.8719,-49 656.8719,-61 656.8719,-61 656.8719,-67 650.8719,-73 644.8719,-73"/>
<text text-anchor="middle" x="629.2666" y="-50.8" font-family="Verdana" font-size="14.00" fill="#000000">home</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultBase&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.home -->
<g id="edge2" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultBase&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.home</title>
<g id="a_edge2"><a xlink:title="at router.go:29: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.home]">
<path fill="none" stroke="#000000" d="M502.4307,-39.5175C530.203,-42.9076 565.3654,-47.1998 591.6199,-50.4046"/>
<polygon fill="#000000" stroke="#000000" points="591.2158,-53.8811 601.5663,-51.6187 592.0641,-46.9327 591.2158,-53.8811"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultConfig -->
<g id="node18" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultConfig</title>
<g id="a_node18"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultConfig | defined in router.go:32&#10;at router.go:33: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.home]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M495.9892,-113C495.9892,-113 418.471,-113 418.471,-113 412.471,-113 406.471,-107 406.471,-101 406.471,-101 406.471,-89 406.471,-89 406.471,-83 412.471,-77 418.471,-77 418.471,-77 495.9892,-77 495.9892,-77 501.9892,-77 507.9892,-83 507.9892,-89 507.9892,-89 507.9892,-101 507.9892,-101 507.9892,-107 501.9892,-113 495.9892,-113"/>
<text text-anchor="middle" x="457.2301" y="-90.8" font-family="Verdana" font-size="14.00" fill="#000000">defaultConfig</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultConfig&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.home -->
<g id="edge25" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultConfig&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.home</title>
<g id="a_edge25"><a xlink:title="at router.go:33: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.home]">
<path fill="none" stroke="#000000" d="M508.3809,-83.107C535.0739,-76.9006 567.1591,-69.4405 591.5644,-63.7661"/>
<polygon fill="#000000" stroke="#000000" points="592.568,-67.1262 601.5155,-61.4524 590.9826,-60.3081 592.568,-67.1262"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.init -->
<g id="node19" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.init</title>
<g id="a_node19"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/config.init | defined in .:0&#10;at config.go:14: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]&#10;at netdb.go:15: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultConfig]&#10;at router.go:41: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultConfig]&#10;at router.go:40: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultBase]&#10;at router.go:48: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M257.0379,-52C257.0379,-52 227.0379,-52 227.0379,-52 221.0379,-52 215.0379,-46 215.0379,-40 215.0379,-40 215.0379,-28 215.0379,-28 215.0379,-22 221.0379,-16 227.0379,-16 227.0379,-16 257.0379,-16 257.0379,-16 263.0379,-16 269.0379,-22 269.0379,-28 269.0379,-28 269.0379,-40 269.0379,-40 269.0379,-46 263.0379,-52 257.0379,-52"/>
<text text-anchor="middle" x="242.0379" y="-29.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.init&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig -->
<g id="edge21" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.init&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig</title>
<g id="a_edge21"><a xlink:title="at router.go:48: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.DefaultRouterConfig]">
<path fill="none" stroke="#000000" d="M269.1031,-41.4613C283.2977,-46.3943 300.2769,-54.0109 312.7462,-65 360.1517,-106.7781 338.0115,-145.5984 385.7462,-187 388.555,-189.4361 391.59,-191.6958 394.7696,-193.7888"/>
<polygon fill="#000000" stroke="#000000" points="393.0815,-196.8568 403.4683,-198.9463 396.6516,-190.8356 393.0815,-196.8568"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.init&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultBase -->
<g id="edge16" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.init&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultBase</title>
<g id="a_edge16"><a xlink:title="at router.go:40: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultBase]">
<path fill="none" stroke="#000000" d="M269.2921,-34C302.4127,-34 359.1306,-34 401.6157,-34"/>
<polygon fill="#000000" stroke="#000000" points="401.8132,-37.5001 411.8132,-34 401.8132,-30.5001 401.8132,-37.5001"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.init&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultConfig -->
<g id="edge4" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.init&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultConfig</title>
<g id="a_edge4"><a xlink:title="at netdb.go:15: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultConfig]&#10;at router.go:41: calling [github.com/go&#45;i2p/go&#45;i2p/lib/config.defaultConfig]">
<path fill="none" stroke="#000000" d="M269.2921,-41.7257C301.1216,-50.7483 354.7445,-65.9487 396.5846,-77.809"/>
<polygon fill="#000000" stroke="#000000" points="395.8274,-81.2322 406.4029,-80.5921 397.7365,-74.4975 395.8274,-81.2322"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="node20" class="node">
<title>github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_node20"><a xlink:title="github.com/go&#45;i2p/logger.GetGoI2PLogger | defined in log.go:120">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M505.9196,-174C505.9196,-174 408.5406,-174 408.5406,-174 402.5406,-174 396.5406,-168 396.5406,-162 396.5406,-162 396.5406,-150 396.5406,-150 396.5406,-144 402.5406,-138 408.5406,-138 408.5406,-138 505.9196,-138 505.9196,-138 511.9196,-138 517.9196,-144 517.9196,-150 517.9196,-150 517.9196,-162 517.9196,-162 517.9196,-168 511.9196,-174 505.9196,-174"/>
<text text-anchor="middle" x="457.2301" y="-160.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="457.2301" y="-143.4" font-family="Verdana" font-size="14.00" fill="#000000">GetGoI2PLogger</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/config.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="edge3" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/config.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_edge3"><a xlink:title="at config.go:14: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="none" stroke="#8b4513" d="M269.1253,-43.7794C282.6818,-49.1885 299.0729,-56.5294 312.7462,-65 348.6887,-87.2663 349.6286,-104.0189 385.7462,-126 390.09,-128.6436 394.7086,-131.1603 399.4263,-133.5301"/>
<polygon fill="#8b4513" stroke="#8b4513" points="398.0428,-136.748 408.5747,-137.9007 401.0603,-130.4317 398.0428,-136.748"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 42 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/crypto"
![crypto.svg](crypto)
![crypto.svg](crypto.svg)
package for i2p specific crpytography

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/i2np"
![i2np.svg](i2np)
![i2np.svg](i2np.svg)

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/i2np/fuzz/header"
![exportable.svg](exportable)
![exportable.svg](exportable.svg)

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 111 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/keys"
![keys.svg](keys)
![keys.svg](keys.svg)

View File

@ -65,9 +65,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/keys.NewRouterInfoKeystore&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/keys.generateNewKey -->
<g id="edge15" class="edge">
<g id="edge14" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/keys.NewRouterInfoKeystore&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/keys.generateNewKey</title>
<g id="a_edge15"><a xlink:title="at routerinfo_keystore.go:46: calling [github.com/go&#45;i2p/go&#45;i2p/lib/keys.generateNewKey]">
<g id="a_edge14"><a xlink:title="at routerinfo_keystore.go:46: calling [github.com/go&#45;i2p/go&#45;i2p/lib/keys.generateNewKey]">
<path fill="none" stroke="#000000" d="M166.8604,-113.0544C196.8229,-120.8191 231.7977,-129.8826 261.8743,-137.6769"/>
<polygon fill="#000000" stroke="#000000" points="261.3138,-141.1472 271.872,-140.2678 263.0698,-134.371 261.3138,-141.1472"/>
</a>
@ -84,9 +84,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/keys.NewRouterInfoKeystore&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewRouterTimestamper -->
<g id="edge10" class="edge">
<g id="edge12" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/keys.NewRouterInfoKeystore&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewRouterTimestamper</title>
<g id="a_edge10"><a xlink:title="at routerinfo_keystore.go:61: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewRouterTimestamper]">
<g id="a_edge12"><a xlink:title="at routerinfo_keystore.go:61: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewRouterTimestamper]">
<path fill="none" stroke="#8b4513" d="M166.8604,-76.9456C194.0247,-69.9061 225.3088,-61.7989 253.3276,-54.538"/>
<polygon fill="#8b4513" stroke="#8b4513" points="254.2877,-57.9048 263.0899,-52.0081 252.5317,-51.1287 254.2877,-57.9048"/>
</a>
@ -121,9 +121,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/keys.loadExistingKey&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge4" class="edge">
<g id="edge15" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/keys.loadExistingKey&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge4"><a xlink:title="at routerinfo_keystore.go:84: calling [github.com/samber/oops.Errorf]">
<g id="a_edge15"><a xlink:title="at routerinfo_keystore.go:84: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M391.6871,-80.6982C439.0475,-69.2387 504.1698,-53.4814 545.3431,-43.5189"/>
<polygon fill="#8b4513" stroke="#8b4513" points="546.3731,-46.8708 555.2695,-41.1171 544.7268,-40.0671 546.3731,-46.8708"/>
</a>
@ -198,9 +198,9 @@
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/keys.KeyStoreImpl).StoreKeys&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.KeyStoreImpl).KeyID -->
<g id="edge6" class="edge">
<g id="edge11" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.KeyStoreImpl).StoreKeys&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.KeyStoreImpl).KeyID</title>
<g id="a_edge6"><a xlink:title="at types.go:65: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.KeyStoreImpl).KeyID]">
<g id="a_edge11"><a xlink:title="at types.go:65: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.KeyStoreImpl).KeyID]">
<path fill="none" stroke="#000000" d="M138.4624,-399C181.461,-399 248.436,-399 291.4006,-399"/>
<polygon fill="#000000" stroke="#000000" points="291.5116,-402.5001 301.5116,-399 291.5115,-395.5001 291.5116,-402.5001"/>
</a>
@ -225,9 +225,9 @@
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).StoreKeys&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).KeyID -->
<g id="edge3" class="edge">
<g id="edge6" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).StoreKeys&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).KeyID</title>
<g id="a_edge3"><a xlink:title="at routerinfo_keystore.go:107: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).KeyID]">
<g id="a_edge6"><a xlink:title="at routerinfo_keystore.go:107: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).KeyID]">
<path fill="none" stroke="#000000" d="M373.9275,-711C420.6798,-711 496.3667,-711 543.1822,-711"/>
<polygon fill="#000000" stroke="#000000" points="543.2839,-714.5001 553.2838,-711 543.2838,-707.5001 543.2839,-714.5001"/>
</a>
@ -236,61 +236,61 @@
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo -->
<g id="node15" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo</title>
<g id="a_node15"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo | defined in routerinfo_keystore.go:125&#10;at routerinfo_keystore.go:127: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).GetKeys]&#10;at routerinfo_keystore.go:129: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:136: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:140: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:147: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:153: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:162: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:173: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:194: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:185: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.NewRouterInfo]&#10;at routerinfo_keystore.go:145: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateWithType]&#10;at routerinfo_keystore.go:166: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity]&#10;at routerinfo_keystore.go:157: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SignatureSize]&#10;at routerinfo_keystore.go:151: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificateFromCertificate]&#10;at routerinfo_keystore.go:134: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt]&#10;at routerinfo_keystore.go:138: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt]&#10;at routerinfo_keystore.go:156: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize]&#10;at routerinfo_keystore.go:177: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).GetCurrentTime]">
<g id="a_node15"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo | defined in routerinfo_keystore.go:125&#10;at routerinfo_keystore.go:166: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity]&#10;at routerinfo_keystore.go:177: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).GetCurrentTime]&#10;at routerinfo_keystore.go:127: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).GetKeys]&#10;at routerinfo_keystore.go:129: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:136: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:140: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:147: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:153: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:162: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:173: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:194: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:134: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt]&#10;at routerinfo_keystore.go:138: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt]&#10;at routerinfo_keystore.go:151: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificateFromCertificate]&#10;at routerinfo_keystore.go:156: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize]&#10;at routerinfo_keystore.go:157: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).SignatureSize]&#10;at routerinfo_keystore.go:185: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.NewRouterInfo]&#10;at routerinfo_keystore.go:145: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateWithType]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M390.4414,-668C390.4414,-668 274.7188,-668 274.7188,-668 268.7188,-668 262.7188,-662 262.7188,-656 262.7188,-656 262.7188,-644 262.7188,-644 262.7188,-638 268.7188,-632 274.7188,-632 274.7188,-632 390.4414,-632 390.4414,-632 396.4414,-632 402.4414,-638 402.4414,-644 402.4414,-644 402.4414,-656 402.4414,-656 402.4414,-662 396.4414,-668 390.4414,-668"/>
<text text-anchor="middle" x="332.5801" y="-645.8" font-family="Verdana" font-size="14.00" fill="#000000">ConstructRouterInfo</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge2" class="edge">
<g id="edge4" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge2"><a xlink:title="at routerinfo_keystore.go:129: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:136: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:140: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:147: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:153: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:162: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:173: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:194: calling [github.com/samber/oops.Errorf]">
<g id="a_edge4"><a xlink:title="at routerinfo_keystore.go:129: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:136: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:140: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:147: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:153: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:162: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:173: calling [github.com/samber/oops.Errorf]&#10;at routerinfo_keystore.go:194: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M340.8224,-631.974C357.3427,-595.0726 394.565,-507.912 413.7772,-431 453.9757,-270.074 366.7231,-179.4557 486.7772,-65 502.6013,-49.9138 525.7299,-42.1675 545.5344,-38.1909"/>
<polygon fill="#8b4513" stroke="#8b4513" points="546.2873,-41.6123 555.5316,-36.4361 545.077,-34.7177 546.2873,-41.6123"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt -->
<g id="edge12" class="edge">
<g id="edge5" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt</title>
<g id="a_edge12"><a xlink:title="at routerinfo_keystore.go:134: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt]&#10;at routerinfo_keystore.go:138: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt]">
<g id="a_edge5"><a xlink:title="at routerinfo_keystore.go:134: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt]&#10;at routerinfo_keystore.go:138: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/data.NewIntegerFromInt]">
<path fill="none" stroke="#8b4513" d="M340.5424,-631.9008C356.5529,-594.8661 392.894,-507.4752 413.7772,-431 450.4946,-296.5389 386.6461,-222.9624 486.7772,-126 492.8071,-120.1609 499.9302,-115.4211 507.5407,-111.5736"/>
<polygon fill="#8b4513" stroke="#8b4513" points="508.9888,-114.7601 516.6622,-107.4546 506.1079,-108.3804 508.9888,-114.7601"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateWithType -->
<g id="edge7" class="edge">
<g id="edge13" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateWithType</title>
<g id="a_edge7"><a xlink:title="at routerinfo_keystore.go:145: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateWithType]">
<g id="a_edge13"><a xlink:title="at routerinfo_keystore.go:145: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/certificate.NewCertificateWithType]">
<path fill="none" stroke="#8b4513" d="M339.7144,-631.9698C354.36,-594.704 388.5591,-506.371 413.7772,-431 449.6932,-323.6553 407.3775,-267.6754 486.7772,-187 489.4348,-184.2997 492.3258,-181.8341 495.3931,-179.5828"/>
<polygon fill="#8b4513" stroke="#8b4513" points="497.3754,-182.4692 503.8852,-174.1102 493.5835,-176.5852 497.3754,-182.4692"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificateFromCertificate -->
<g id="edge11" class="edge">
<g id="edge7" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificateFromCertificate</title>
<g id="a_edge11"><a xlink:title="at routerinfo_keystore.go:151: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificateFromCertificate]">
<g id="a_edge7"><a xlink:title="at routerinfo_keystore.go:151: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificateFromCertificate]">
<path fill="none" stroke="#8b4513" d="M339.3248,-631.7781C368.0663,-554.2094 479.2026,-255.1359 486.7772,-248 489.7579,-245.1919 492.992,-242.6381 496.4098,-240.3157"/>
<polygon fill="#8b4513" stroke="#8b4513" points="498.4764,-243.1572 505.2447,-235.006 494.8705,-237.1573 498.4764,-243.1572"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity -->
<g id="edge8" class="edge">
<g id="edge1" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity</title>
<g id="a_edge8"><a xlink:title="at routerinfo_keystore.go:166: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity]">
<g id="a_edge1"><a xlink:title="at routerinfo_keystore.go:166: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/router_identity.NewRouterIdentity]">
<path fill="none" stroke="#8b4513" d="M338.5426,-631.9132C359.8653,-568.2129 433.877,-355.5958 486.7772,-309 493.3874,-303.1776 501.0927,-298.4479 509.2244,-294.6061"/>
<polygon fill="#8b4513" stroke="#8b4513" points="510.7213,-297.7728 518.5508,-290.6348 507.9789,-291.3324 510.7213,-297.7728"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.NewRouterInfo -->
<g id="edge5" class="edge">
<g id="edge10" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.NewRouterInfo</title>
<g id="a_edge5"><a xlink:title="at routerinfo_keystore.go:185: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.NewRouterInfo]">
<g id="a_edge10"><a xlink:title="at routerinfo_keystore.go:185: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.NewRouterInfo]">
<path fill="none" stroke="#8b4513" d="M336.7024,-631.6348C349.2815,-580.0653 392.2195,-433.0101 486.7772,-361 496.1976,-353.8259 507.5173,-348.9105 519.0637,-345.5601"/>
<polygon fill="#8b4513" stroke="#8b4513" points="519.9452,-348.9474 528.7793,-343.0986 518.226,-342.1618 519.9452,-348.9474"/>
</a>
@ -306,9 +306,9 @@
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).GetKeys -->
<g id="edge1" class="edge">
<g id="edge3" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).GetKeys</title>
<g id="a_edge1"><a xlink:title="at routerinfo_keystore.go:127: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).GetKeys]">
<g id="a_edge3"><a xlink:title="at routerinfo_keystore.go:127: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).GetKeys]">
<path fill="none" stroke="#000000" d="M402.4701,-650C445.626,-650 499.8217,-650 537.8465,-650"/>
<polygon fill="#000000" stroke="#000000" points="538.1201,-653.5001 548.1201,-650 538.12,-646.5001 538.1201,-653.5001"/>
</a>
@ -325,9 +325,9 @@
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).GetCurrentTime -->
<g id="edge14" class="edge">
<g id="edge2" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).GetCurrentTime</title>
<g id="a_edge14"><a xlink:title="at routerinfo_keystore.go:177: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).GetCurrentTime]">
<g id="a_edge2"><a xlink:title="at routerinfo_keystore.go:177: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).GetCurrentTime]">
<path fill="none" stroke="#8b4513" d="M341.0985,-631.8057C360.8147,-591.713 413.5611,-495.3295 486.7772,-445 495.8122,-438.7893 506.2153,-433.9444 516.7935,-430.1682"/>
<polygon fill="#8b4513" stroke="#8b4513" points="518.1029,-433.4226 526.5231,-426.9922 515.9306,-426.7682 518.1029,-433.4226"/>
</a>
@ -344,9 +344,9 @@
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize -->
<g id="edge13" class="edge">
<g id="edge8" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/keys.RouterInfoKeystore).ConstructRouterInfo&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize</title>
<g id="a_edge13"><a xlink:title="at routerinfo_keystore.go:156: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize]">
<g id="a_edge8"><a xlink:title="at routerinfo_keystore.go:156: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/key_certificate.KeyCertificate).CryptoSize]">
<path fill="none" stroke="#8b4513" d="M352.0391,-631.8627C379.9286,-606.7254 433.7711,-561.3133 486.7772,-534 497.5495,-528.4492 509.5032,-523.6606 521.2517,-519.6209"/>
<polygon fill="#8b4513" stroke="#8b4513" points="522.6344,-522.8507 531.0416,-516.4033 520.4487,-516.2006 522.6344,-522.8507"/>
</a>

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/netdb"
![netdb.svg](netdb)
![netdb.svg](netdb.svg)

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 83 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/netdb/reseed"
![reseed.svg](reseed)
![reseed.svg](reseed.svg)

View File

@ -114,9 +114,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="edge1" class="edge">
<g id="edge12" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_edge1"><a xlink:title="at reseed.go:21: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<g id="a_edge12"><a xlink:title="at reseed.go:21: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="none" stroke="#8b4513" d="M101.2067,-34C123.8024,-34 157.0344,-34 187.0776,-34"/>
<polygon fill="#8b4513" stroke="#8b4513" points="187.124,-37.5001 197.124,-34 187.124,-30.5001 187.124,-37.5001"/>
</a>
@ -225,133 +225,133 @@
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed -->
<g id="node17" class="node">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed</title>
<g id="a_node17"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed | defined in reseed.go:31&#10;at reseed.go:65: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at reseed.go:79: calling [(*github.com/sirupsen/logrus.Logger).Println]&#10;at reseed.go:80: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]&#10;at reseed.go:105: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]&#10;at reseed.go:110: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]&#10;at reseed.go:117: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]&#10;at reseed.go:42: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:53: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:61: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:123: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:76: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:85: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:91: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:95: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:74: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/su3.SU3).Signature]&#10;at reseed.go:89: calling [github.com/eyedeekay/go&#45;unzip/pkg/unzip.New]&#10;at reseed.go:108: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.ReadRouterInfo]&#10;at reseed.go:32: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at reseed.go:57: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at reseed.go:68: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at reseed.go:99: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at reseed.go:119: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at reseed.go:42: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:53: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:61: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:76: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:85: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:91: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:105: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:110: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:117: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:124: calling [github.com/samber/oops.Errorf]&#10;at reseed.go:96: calling [github.com/samber/oops.Errorf]&#10;at reseed.go:89: calling [(github.com/eyedeekay/go&#45;unzip/pkg/unzip.Unzip).Extract]&#10;at reseed.go:32: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at reseed.go:99: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at reseed.go:105: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at reseed.go:110: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at reseed.go:119: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at reseed.go:59: calling [github.com/go&#45;i2p/go&#45;i2p/lib/su3.Read]&#10;at reseed.go:72: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/su3.SU3).Content]">
<g id="a_node17"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed | defined in reseed.go:31&#10;at reseed.go:124: calling [github.com/samber/oops.Errorf]&#10;at reseed.go:96: calling [github.com/samber/oops.Errorf]&#10;at reseed.go:72: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/su3.SU3).Content]&#10;at reseed.go:108: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.ReadRouterInfo]&#10;at reseed.go:32: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at reseed.go:57: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at reseed.go:68: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at reseed.go:99: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at reseed.go:119: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at reseed.go:65: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]&#10;at reseed.go:32: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at reseed.go:99: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at reseed.go:105: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at reseed.go:110: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at reseed.go:119: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at reseed.go:59: calling [github.com/go&#45;i2p/go&#45;i2p/lib/su3.Read]&#10;at reseed.go:74: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/su3.SU3).Signature]&#10;at reseed.go:80: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]&#10;at reseed.go:105: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]&#10;at reseed.go:110: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]&#10;at reseed.go:117: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]&#10;at reseed.go:89: calling [github.com/eyedeekay/go&#45;unzip/pkg/unzip.New]&#10;at reseed.go:89: calling [(github.com/eyedeekay/go&#45;unzip/pkg/unzip.Unzip).Extract]&#10;at reseed.go:42: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:53: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:61: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:76: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:85: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:91: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:105: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:110: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:117: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:42: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:53: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:61: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:123: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:76: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:85: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:91: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:95: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:79: calling [(*github.com/sirupsen/logrus.Logger).Println]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M112.3053,-551C112.3053,-551 35.8981,-551 35.8981,-551 29.8981,-551 23.8981,-545 23.8981,-539 23.8981,-539 23.8981,-527 23.8981,-527 23.8981,-521 29.8981,-515 35.8981,-515 35.8981,-515 112.3053,-515 112.3053,-515 118.3053,-515 124.3053,-521 124.3053,-527 124.3053,-527 124.3053,-539 124.3053,-539 124.3053,-545 118.3053,-551 112.3053,-551"/>
<text text-anchor="middle" x="74.1017" y="-528.8" font-family="Verdana" font-size="14.00" fill="#000000">SingleReseed</text>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/su3.Read -->
<g id="edge14" class="edge">
<g id="edge7" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/su3.Read</title>
<g id="a_edge14"><a xlink:title="at reseed.go:59: calling [github.com/go&#45;i2p/go&#45;i2p/lib/su3.Read]">
<g id="a_edge7"><a xlink:title="at reseed.go:59: calling [github.com/go&#45;i2p/go&#45;i2p/lib/su3.Read]">
<path fill="none" stroke="#8b4513" d="M124.4105,-518.2617C127.3001,-516.1559 129.9431,-513.7496 132.2034,-511 159.7529,-477.4869 171.5539,-160.9886 197.2034,-126 203.2816,-117.7087 212.2268,-111.4726 221.3884,-106.8524"/>
<polygon fill="#8b4513" stroke="#8b4513" points="222.8323,-110.0408 230.5239,-102.7546 219.9673,-103.6539 222.8323,-110.0408"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge11" class="edge">
<g id="edge1" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge11"><a xlink:title="at reseed.go:124: calling [github.com/samber/oops.Errorf]&#10;at reseed.go:96: calling [github.com/samber/oops.Errorf]">
<g id="a_edge1"><a xlink:title="at reseed.go:124: calling [github.com/samber/oops.Errorf]&#10;at reseed.go:96: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M124.315,-518.1818C127.2269,-516.0948 129.9011,-513.7145 132.2034,-511 155.953,-482.9979 175.0425,-216.2755 197.2034,-187 202.9124,-179.4582 210.9755,-173.6019 219.3625,-169.1144"/>
<polygon fill="#8b4513" stroke="#8b4513" points="220.9695,-172.2258 228.4942,-164.7673 217.9607,-165.9054 220.9695,-172.2258"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;github.com/eyedeekay/go&#45;unzip/pkg/unzip.New -->
<g id="edge7" class="edge">
<g id="edge10" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;github.com/eyedeekay/go&#45;unzip/pkg/unzip.New</title>
<g id="a_edge7"><a xlink:title="at reseed.go:89: calling [github.com/eyedeekay/go&#45;unzip/pkg/unzip.New]">
<g id="a_edge10"><a xlink:title="at reseed.go:89: calling [github.com/eyedeekay/go&#45;unzip/pkg/unzip.New]">
<path fill="none" stroke="#8b4513" d="M124.4464,-517.8762C127.2876,-515.8626 129.9131,-513.5822 132.2034,-511 152.1774,-488.4803 178.5084,-271.5922 197.2034,-248 203.3584,-240.2327 211.9839,-234.2276 220.8007,-229.6636"/>
<polygon fill="#8b4513" stroke="#8b4513" points="222.3624,-232.7975 229.9624,-225.4157 219.4178,-226.4469 222.3624,-232.7975"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.ReadRouterInfo -->
<g id="edge8" class="edge">
<g id="edge3" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.ReadRouterInfo</title>
<g id="a_edge8"><a xlink:title="at reseed.go:108: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.ReadRouterInfo]">
<g id="a_edge3"><a xlink:title="at reseed.go:108: calling [github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.ReadRouterInfo]">
<path fill="none" stroke="#8b4513" d="M124.2808,-517.7252C127.1614,-515.7475 129.841,-513.5164 132.2034,-511 163.8166,-477.3253 163.5368,-351.553 195.117,-304.0394"/>
<polygon fill="#8b4513" stroke="#8b4513" points="197.9276,-306.1281 201.3993,-296.1182 192.4431,-301.7783 197.9276,-306.1281"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/su3.SU3).Content -->
<g id="edge15" class="edge">
<g id="edge2" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/su3.SU3).Content</title>
<g id="a_edge15"><a xlink:title="at reseed.go:72: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/su3.SU3).Content]">
<g id="a_edge2"><a xlink:title="at reseed.go:72: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/su3.SU3).Content]">
<path fill="none" stroke="#8b4513" d="M124.3338,-516.8524C127.1291,-515.0906 129.7813,-513.1457 132.2034,-511 178.779,-469.7385 152.9865,-430.7798 197.2034,-387 202.2246,-382.0285 208.2061,-377.6881 214.4254,-373.9552"/>
<polygon fill="#8b4513" stroke="#8b4513" points="216.5336,-376.7912 223.6233,-368.9181 213.1713,-370.6516 216.5336,-376.7912"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/su3.SU3).Signature -->
<g id="edge6" class="edge">
<g id="edge8" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/su3.SU3).Signature</title>
<g id="a_edge6"><a xlink:title="at reseed.go:74: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/su3.SU3).Signature]">
<g id="a_edge8"><a xlink:title="at reseed.go:74: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/su3.SU3).Signature]">
<path fill="none" stroke="#8b4513" d="M124.249,-515.6554C127.0012,-514.2 129.6731,-512.6487 132.2034,-511 166.6974,-488.5238 163.5277,-468.6846 197.2034,-445 201.1431,-442.2291 205.4008,-439.6199 209.7694,-437.193"/>
<polygon fill="#8b4513" stroke="#8b4513" points="211.5749,-440.1988 218.8257,-432.4738 208.3401,-433.9911 211.5749,-440.1988"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField -->
<g id="edge13" class="edge">
<g id="edge6" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField</title>
<g id="a_edge13"><a xlink:title="at reseed.go:32: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at reseed.go:99: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at reseed.go:105: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at reseed.go:110: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at reseed.go:119: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<g id="a_edge6"><a xlink:title="at reseed.go:32: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at reseed.go:99: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at reseed.go:105: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at reseed.go:110: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at reseed.go:119: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="none" stroke="#8b4513" d="M124.2975,-524.8024C150.0871,-520.5906 181.435,-515.4711 207.2718,-511.2516"/>
<polygon fill="#8b4513" stroke="#8b4513" points="207.9384,-514.6892 217.2435,-509.6231 206.8101,-507.7807 207.9384,-514.6892"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError -->
<g id="edge10" class="edge">
<g id="edge13" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError</title>
<g id="a_edge10"><a xlink:title="at reseed.go:42: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:53: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:61: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:76: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:85: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:91: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:105: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:110: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:117: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<g id="a_edge13"><a xlink:title="at reseed.go:42: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:53: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:61: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:76: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:85: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:91: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:105: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:110: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at reseed.go:117: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="none" stroke="#8b4513" d="M124.2975,-541.4709C150.0871,-545.823 181.435,-551.1132 207.2718,-555.4733"/>
<polygon fill="#8b4513" stroke="#8b4513" points="206.8005,-558.9432 217.2435,-557.1561 207.9654,-552.0408 206.8005,-558.9432"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="edge5" class="edge">
<g id="edge14" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_edge5"><a xlink:title="at reseed.go:42: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:53: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:61: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:123: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:76: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:85: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:91: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:95: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<g id="a_edge14"><a xlink:title="at reseed.go:42: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:53: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:61: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:123: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:76: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:85: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:91: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at reseed.go:95: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M109.8907,-551.1062C134.4382,-563.5052 167.7666,-580.3004 197.2034,-595 204.0625,-598.4252 211.3659,-602.0554 218.4403,-605.563"/>
<polygon fill="#8b4513" stroke="#8b4513" points="217.3675,-608.9374 227.8821,-610.2394 220.4744,-602.6646 217.3675,-608.9374"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields -->
<g id="edge2" class="edge">
<g id="edge5" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithFields</title>
<g id="a_edge2"><a xlink:title="at reseed.go:65: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<g id="a_edge5"><a xlink:title="at reseed.go:65: calling [(*github.com/go&#45;i2p/logger.Logger).WithFields]">
<path fill="none" stroke="#8b4513" d="M88.8873,-551.133C110.5855,-576.9001 153.2635,-624.4748 197.2034,-656 200.5833,-658.425 204.1887,-660.7535 207.8922,-662.9657"/>
<polygon fill="#8b4513" stroke="#8b4513" points="206.2227,-666.0424 216.6522,-667.9073 209.6621,-659.9455 206.2227,-666.0424"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warn -->
<g id="edge4" class="edge">
<g id="edge9" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warn</title>
<g id="a_edge4"><a xlink:title="at reseed.go:80: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]&#10;at reseed.go:105: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]&#10;at reseed.go:110: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]&#10;at reseed.go:117: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]">
<g id="a_edge9"><a xlink:title="at reseed.go:80: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]&#10;at reseed.go:105: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]&#10;at reseed.go:110: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]&#10;at reseed.go:117: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]">
<path fill="none" stroke="#8b4513" d="M82.2749,-551.2166C99.1511,-587.092 141.0238,-667.6832 197.2034,-717 203.4682,-722.4995 210.9203,-727.2565 218.4187,-731.2596"/>
<polygon fill="#8b4513" stroke="#8b4513" points="217.3403,-734.6309 227.8557,-735.9263 220.4433,-728.3562 217.3403,-734.6309"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge9" class="edge">
<g id="edge4" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge9"><a xlink:title="at reseed.go:32: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at reseed.go:57: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at reseed.go:68: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at reseed.go:99: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at reseed.go:119: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<g id="a_edge4"><a xlink:title="at reseed.go:32: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at reseed.go:57: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at reseed.go:68: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at reseed.go:99: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at reseed.go:119: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M80.5099,-551.3118C96.0286,-594.0599 138.7033,-702.5924 197.2034,-779 205.3145,-789.594 215.7152,-799.7387 225.6021,-808.317"/>
<polygon fill="#8b4513" stroke="#8b4513" points="223.4591,-811.0879 233.3674,-814.8396 227.9613,-805.7278 223.4591,-811.0879"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;(*github.com/sirupsen/logrus.Logger).Println -->
<g id="edge3" class="edge">
<g id="edge15" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;(*github.com/sirupsen/logrus.Logger).Println</title>
<g id="a_edge3"><a xlink:title="at reseed.go:79: calling [(*github.com/sirupsen/logrus.Logger).Println]">
<g id="a_edge15"><a xlink:title="at reseed.go:79: calling [(*github.com/sirupsen/logrus.Logger).Println]">
<path fill="none" stroke="#8b4513" d="M76.1468,-551.1797C83.1258,-605.3574 110.5897,-767.9085 197.2034,-864 202.7295,-870.1308 209.7911,-875.1569 217.1278,-879.2228"/>
<polygon fill="#8b4513" stroke="#8b4513" points="215.9609,-882.5513 226.4734,-883.8701 219.0778,-876.2835 215.9609,-882.5513"/>
</a>
</g>
</g>
<!-- (github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;(github.com/eyedeekay/go&#45;unzip/pkg/unzip.Unzip).Extract -->
<g id="edge12" class="edge">
<g id="edge11" class="edge">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/netdb/reseed.Reseed).SingleReseed&#45;&gt;(github.com/eyedeekay/go&#45;unzip/pkg/unzip.Unzip).Extract</title>
<g id="a_edge12"><a xlink:title="at reseed.go:89: calling [(github.com/eyedeekay/go&#45;unzip/pkg/unzip.Unzip).Extract]">
<g id="a_edge11"><a xlink:title="at reseed.go:89: calling [(github.com/eyedeekay/go&#45;unzip/pkg/unzip.Unzip).Extract]">
<path fill="none" stroke="#8b4513" d="M76.0723,-551.003C83.2139,-609.681 111.9703,-798.9326 197.2034,-926 204.5121,-936.8959 214.52,-947.0093 224.2969,-955.468"/>
<polygon fill="#8b4513" stroke="#8b4513" points="222.0997,-958.1929 232.0322,-961.8803 226.5671,-952.8038 222.0997,-958.1929"/>
</a>

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/router"
![router.svg](router)
![router.svg](router.svg)

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/su3"
![su3.svg](su3)
![su3.svg](su3.svg)
Package su3 implements reading the SU3 file format.

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/transport"
![transport.svg](transport)
![transport.svg](transport.svg)
*

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/transport/messages"
![ntcp.svg](ntcp)
![ntcp.svg](ntcp.svg)

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/transport/noise"
![noise.svg](noise)
![noise.svg](noise.svg)

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 270 KiB

After

Width:  |  Height:  |  Size: 268 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/transport/ntcp"
![ntcp.svg](ntcp)
![ntcp.svg](ntcp.svg)

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 85 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/transport/obfs"
![obfs.svg](obfs)
![obfs.svg](obfs.svg)

View File

@ -33,7 +33,7 @@
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/transport/obfs.ObfuscateEphemeralKey -->
<g id="node1" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/transport/obfs.ObfuscateEphemeralKey</title>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/transport/obfs.ObfuscateEphemeralKey | defined in obfs.go:9&#10;at obfs.go:24: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/crypto.AESSymmetricEncrypter).EncryptNoPadding]&#10;at obfs.go:11: calling [github.com/samber/oops.Errorf]">
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/transport/obfs.ObfuscateEphemeralKey | defined in obfs.go:9&#10;at obfs.go:11: calling [github.com/samber/oops.Errorf]&#10;at obfs.go:24: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/crypto.AESSymmetricEncrypter).EncryptNoPadding]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M175.166,-169C175.166,-169 34.7542,-169 34.7542,-169 28.7542,-169 22.7542,-163 22.7542,-157 22.7542,-157 22.7542,-145 22.7542,-145 22.7542,-139 28.7542,-133 34.7542,-133 34.7542,-133 175.166,-133 175.166,-133 181.166,-133 187.166,-139 187.166,-145 187.166,-145 187.166,-157 187.166,-157 187.166,-163 181.166,-169 175.166,-169"/>
<text text-anchor="middle" x="104.9601" y="-146.8" font-family="Verdana" font-size="14.00" fill="#000000">ObfuscateEphemeralKey</text>
</a>
@ -50,9 +50,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/transport/obfs.ObfuscateEphemeralKey&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge4" class="edge">
<g id="edge2" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/transport/obfs.ObfuscateEphemeralKey&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge4"><a xlink:title="at obfs.go:11: calling [github.com/samber/oops.Errorf]">
<g id="a_edge2"><a xlink:title="at obfs.go:11: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M187.2478,-144.2198C235.5675,-140.2384 294.4375,-135.3877 332.531,-132.2489"/>
<polygon fill="#8b4513" stroke="#8b4513" points="333.0195,-135.7206 342.6983,-131.4111 332.4446,-128.7442 333.0195,-135.7206"/>
</a>
@ -69,9 +69,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/transport/obfs.ObfuscateEphemeralKey&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/crypto.AESSymmetricEncrypter).EncryptNoPadding -->
<g id="edge1" class="edge">
<g id="edge3" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/transport/obfs.ObfuscateEphemeralKey&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/crypto.AESSymmetricEncrypter).EncryptNoPadding</title>
<g id="a_edge1"><a xlink:title="at obfs.go:24: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/crypto.AESSymmetricEncrypter).EncryptNoPadding]">
<g id="a_edge3"><a xlink:title="at obfs.go:24: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/crypto.AESSymmetricEncrypter).EncryptNoPadding]">
<path fill="none" stroke="#8b4513" d="M187.2478,-168.2588C221.973,-175.542 262.147,-183.9679 296.1427,-191.0981"/>
<polygon fill="#8b4513" stroke="#8b4513" points="295.5127,-194.5421 306.0183,-193.1694 296.9497,-187.6911 295.5127,-194.5421"/>
</a>
@ -80,16 +80,16 @@
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/transport/obfs.DeobfuscateEphemeralKey -->
<g id="node3" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/transport/obfs.DeobfuscateEphemeralKey</title>
<g id="a_node3"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/transport/obfs.DeobfuscateEphemeralKey | defined in obfs.go:36&#10;at obfs.go:38: calling [github.com/samber/oops.Errorf]&#10;at obfs.go:51: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/crypto.AESSymmetricDecrypter).DecryptNoPadding]">
<g id="a_node3"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/transport/obfs.DeobfuscateEphemeralKey | defined in obfs.go:36&#10;at obfs.go:51: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/crypto.AESSymmetricDecrypter).DecryptNoPadding]&#10;at obfs.go:38: calling [github.com/samber/oops.Errorf]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M181.8803,-95C181.8803,-95 28.0399,-95 28.0399,-95 22.0399,-95 16.0399,-89 16.0399,-83 16.0399,-83 16.0399,-71 16.0399,-71 16.0399,-65 22.0399,-59 28.0399,-59 28.0399,-59 181.8803,-59 181.8803,-59 187.8803,-59 193.8803,-65 193.8803,-71 193.8803,-71 193.8803,-83 193.8803,-83 193.8803,-89 187.8803,-95 181.8803,-95"/>
<text text-anchor="middle" x="104.9601" y="-72.8" font-family="Verdana" font-size="14.00" fill="#000000">DeobfuscateEphemeralKey</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/transport/obfs.DeobfuscateEphemeralKey&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge2" class="edge">
<g id="edge4" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/transport/obfs.DeobfuscateEphemeralKey&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge2"><a xlink:title="at obfs.go:38: calling [github.com/samber/oops.Errorf]">
<g id="a_edge4"><a xlink:title="at obfs.go:38: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M194.2387,-94.3875C241.1517,-103.5241 296.2782,-114.2603 332.5523,-121.3249"/>
<polygon fill="#8b4513" stroke="#8b4513" points="332.2326,-124.8284 342.7173,-123.3046 333.5708,-117.9575 332.2326,-124.8284"/>
</a>
@ -106,9 +106,9 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/transport/obfs.DeobfuscateEphemeralKey&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/crypto.AESSymmetricDecrypter).DecryptNoPadding -->
<g id="edge3" class="edge">
<g id="edge1" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/transport/obfs.DeobfuscateEphemeralKey&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/crypto.AESSymmetricDecrypter).DecryptNoPadding</title>
<g id="a_edge3"><a xlink:title="at obfs.go:51: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/crypto.AESSymmetricDecrypter).DecryptNoPadding]">
<g id="a_edge1"><a xlink:title="at obfs.go:51: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/crypto.AESSymmetricDecrypter).DecryptNoPadding]">
<path fill="none" stroke="#8b4513" d="M194.2387,-73.9906C227.0695,-72.884 263.9229,-71.6417 295.5223,-70.5766"/>
<polygon fill="#8b4513" stroke="#8b4513" points="295.7091,-74.0724 305.5855,-70.2374 295.4732,-67.0763 295.7091,-74.0724"/>
</a>

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/transport/ssu"
![ssu.svg](ssu)
![ssu.svg](ssu.svg)
i2p ssu transport implementation

View File

@ -17,32 +17,32 @@
<g id="clust5" class="cluster">
<title>cluster_github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.RouterInfo</title>
<g id="a_clust5"><a xlink:title="type: github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.RouterInfo">
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M238.4341,-533C238.4341,-533 317.4117,-533 317.4117,-533 323.4117,-533 329.4117,-539 329.4117,-545 329.4117,-545 329.4117,-599 329.4117,-599 329.4117,-605 323.4117,-611 317.4117,-611 317.4117,-611 238.4341,-611 238.4341,-611 232.4341,-611 226.4341,-605 226.4341,-599 226.4341,-599 226.4341,-545 226.4341,-545 226.4341,-539 232.4341,-533 238.4341,-533"/>
<text text-anchor="middle" x="277.9229" y="-541.5" font-family="Arial" font-size="15.00" fill="#222222">(RouterInfo)</text>
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M238.4341,-519C238.4341,-519 317.4117,-519 317.4117,-519 323.4117,-519 329.4117,-525 329.4117,-531 329.4117,-531 329.4117,-585 329.4117,-585 329.4117,-591 323.4117,-597 317.4117,-597 317.4117,-597 238.4341,-597 238.4341,-597 232.4341,-597 226.4341,-591 226.4341,-585 226.4341,-585 226.4341,-531 226.4341,-531 226.4341,-525 232.4341,-519 238.4341,-519"/>
<text text-anchor="middle" x="277.9229" y="-527.5" font-family="Arial" font-size="15.00" fill="#222222">(RouterInfo)</text>
</a>
</g>
</g>
<g id="clust4" class="cluster">
<title>cluster_*github.com/sirupsen/logrus.Logger</title>
<g id="a_clust4"><a xlink:title="type: *github.com/sirupsen/logrus.Logger">
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M251.2623,-435C251.2623,-435 305.5835,-435 305.5835,-435 311.5835,-435 317.5835,-441 317.5835,-447 317.5835,-447 317.5835,-501 317.5835,-501 317.5835,-507 311.5835,-513 305.5835,-513 305.5835,-513 251.2623,-513 251.2623,-513 245.2623,-513 239.2623,-507 239.2623,-501 239.2623,-501 239.2623,-447 239.2623,-447 239.2623,-441 245.2623,-435 251.2623,-435"/>
<text text-anchor="middle" x="278.4229" y="-443.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M251.2623,-138C251.2623,-138 305.5835,-138 305.5835,-138 311.5835,-138 317.5835,-144 317.5835,-150 317.5835,-150 317.5835,-204 317.5835,-204 317.5835,-210 311.5835,-216 305.5835,-216 305.5835,-216 251.2623,-216 251.2623,-216 245.2623,-216 239.2623,-210 239.2623,-204 239.2623,-204 239.2623,-150 239.2623,-150 239.2623,-144 245.2623,-138 251.2623,-138"/>
<text text-anchor="middle" x="278.4229" y="-146.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
</a>
</g>
</g>
<g id="clust3" class="cluster">
<title>cluster_*github.com/go&#45;i2p/logger.Logger</title>
<g id="a_clust3"><a xlink:title="type: *github.com/go&#45;i2p/logger.Logger">
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M241.1578,-121C241.1578,-121 314.688,-121 314.688,-121 320.688,-121 326.688,-127 326.688,-133 326.688,-133 326.688,-370 326.688,-370 326.688,-376 320.688,-382 314.688,-382 314.688,-382 241.1578,-382 241.1578,-382 235.1578,-382 229.1578,-376 229.1578,-370 229.1578,-370 229.1578,-133 229.1578,-133 229.1578,-127 235.1578,-121 241.1578,-121"/>
<text text-anchor="middle" x="277.9229" y="-129.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M241.1578,-235C241.1578,-235 314.688,-235 314.688,-235 320.688,-235 326.688,-241 326.688,-247 326.688,-247 326.688,-484 326.688,-484 326.688,-490 320.688,-496 314.688,-496 314.688,-496 241.1578,-496 241.1578,-496 235.1578,-496 229.1578,-490 229.1578,-484 229.1578,-484 229.1578,-247 229.1578,-247 229.1578,-241 235.1578,-235 241.1578,-235"/>
<text text-anchor="middle" x="277.9229" y="-243.5" font-family="Arial" font-size="15.00" fill="#222222">(*Logger)</text>
</a>
</g>
</g>
<g id="clust2" class="cluster">
<title>cluster_*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer</title>
<g id="a_clust2"><a xlink:title="type: *github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer">
<path fill="#b0c4de" stroke="#000000" stroke-width=".5" d="M20,-201C20,-201 133.3282,-201 133.3282,-201 139.3282,-201 145.3282,-207 145.3282,-213 145.3282,-213 145.3282,-511 145.3282,-511 145.3282,-517 139.3282,-523 133.3282,-523 133.3282,-523 20,-523 20,-523 14,-523 8,-517 8,-511 8,-511 8,-213 8,-213 8,-207 14,-201 20,-201"/>
<text text-anchor="middle" x="76.6641" y="-209.5" font-family="Arial" font-size="15.00" fill="#222222">(*TransportMuxer)</text>
<path fill="#b0c4de" stroke="#000000" stroke-width=".5" d="M20,-160C20,-160 133.3282,-160 133.3282,-160 139.3282,-160 145.3282,-166 145.3282,-172 145.3282,-172 145.3282,-470 145.3282,-470 145.3282,-476 139.3282,-482 133.3282,-482 133.3282,-482 20,-482 20,-482 14,-482 8,-476 8,-470 8,-470 8,-172 8,-172 8,-166 14,-160 20,-160"/>
<text text-anchor="middle" x="76.6641" y="-168.5" font-family="Arial" font-size="15.00" fill="#222222">(*TransportMuxer)</text>
</a>
</g>
</g>
@ -50,8 +50,8 @@
<g id="node1" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/transport.Mux</title>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/transport.Mux | defined in multi.go:18&#10;at multi.go:19: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:22: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:19: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M91.6641,-193C91.6641,-193 61.6641,-193 61.6641,-193 55.6641,-193 49.6641,-187 49.6641,-181 49.6641,-181 49.6641,-169 49.6641,-169 49.6641,-163 55.6641,-157 61.6641,-157 61.6641,-157 91.6641,-157 91.6641,-157 97.6641,-157 103.6641,-163 103.6641,-169 103.6641,-169 103.6641,-181 103.6641,-181 103.6641,-187 97.6641,-193 91.6641,-193"/>
<text text-anchor="middle" x="76.6641" y="-170.8" font-family="Verdana" font-size="14.00" fill="#000000">Mux</text>
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M91.6641,-115C91.6641,-115 61.6641,-115 61.6641,-115 55.6641,-115 49.6641,-109 49.6641,-103 49.6641,-103 49.6641,-91 49.6641,-91 49.6641,-85 55.6641,-79 61.6641,-79 61.6641,-79 91.6641,-79 91.6641,-79 97.6641,-79 103.6641,-85 103.6641,-91 103.6641,-91 103.6641,-103 103.6641,-103 103.6641,-109 97.6641,-115 91.6641,-115"/>
<text text-anchor="middle" x="76.6641" y="-92.8" font-family="Verdana" font-size="14.00" fill="#000000">Mux</text>
</a>
</g>
</g>
@ -59,9 +59,9 @@
<g id="node10" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).WithField</title>
<g id="a_node10"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).WithField | defined in log.go:54">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M306.1974,-374C306.1974,-374 249.6484,-374 249.6484,-374 243.6484,-374 237.6484,-368 237.6484,-362 237.6484,-362 237.6484,-350 237.6484,-350 237.6484,-344 243.6484,-338 249.6484,-338 249.6484,-338 306.1974,-338 306.1974,-338 312.1974,-338 318.1974,-344 318.1974,-350 318.1974,-350 318.1974,-362 318.1974,-362 318.1974,-368 312.1974,-374 306.1974,-374"/>
<text text-anchor="middle" x="277.9229" y="-360.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="277.9229" y="-343.4" font-family="Verdana" font-size="14.00" fill="#000000">WithField</text>
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M306.1974,-305C306.1974,-305 249.6484,-305 249.6484,-305 243.6484,-305 237.6484,-299 237.6484,-293 237.6484,-293 237.6484,-281 237.6484,-281 237.6484,-275 243.6484,-269 249.6484,-269 249.6484,-269 306.1974,-269 306.1974,-269 312.1974,-269 318.1974,-275 318.1974,-281 318.1974,-281 318.1974,-293 318.1974,-293 318.1974,-299 312.1974,-305 306.1974,-305"/>
<text text-anchor="middle" x="277.9229" y="-291.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="277.9229" y="-274.4" font-family="Verdana" font-size="14.00" fill="#000000">WithField</text>
</a>
</g>
</g>
@ -69,8 +69,8 @@
<g id="edge12" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/transport.Mux&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField</title>
<g id="a_edge12"><a xlink:title="at multi.go:19: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="none" stroke="#8b4513" d="M103.6944,-178.8224C117.3618,-181.8776 133.5102,-187.3274 145.3282,-197 196.1386,-238.5862 169.7687,-280.7318 217.3282,-326 220.8117,-329.3156 224.7321,-332.3384 228.8604,-335.0771"/>
<polygon fill="#8b4513" stroke="#8b4513" points="227.1789,-338.1499 237.5528,-340.3024 230.7854,-332.1505 227.1789,-338.1499"/>
<path fill="none" stroke="#8b4513" d="M99.6957,-115.2173C113.2476,-126.1571 130.5676,-140.5254 145.3282,-154 184.5592,-189.8131 227.5583,-233.9088 253.6409,-261.2406"/>
<polygon fill="#8b4513" stroke="#8b4513" points="251.4225,-263.9868 260.8505,-268.8204 256.4946,-259.1624 251.4225,-263.9868"/>
</a>
</g>
</g>
@ -78,9 +78,9 @@
<g id="node14" class="node">
<title>(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_node14"><a xlink:title="(*github.com/sirupsen/logrus.Logger).Debug | defined in logger.go:221">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M296.7449,-505C296.7449,-505 259.1009,-505 259.1009,-505 253.1009,-505 247.1009,-499 247.1009,-493 247.1009,-493 247.1009,-481 247.1009,-481 247.1009,-475 253.1009,-469 259.1009,-469 259.1009,-469 296.7449,-469 296.7449,-469 302.7449,-469 308.7449,-475 308.7449,-481 308.7449,-481 308.7449,-493 308.7449,-493 308.7449,-499 302.7449,-505 296.7449,-505"/>
<text text-anchor="middle" x="277.9229" y="-491.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
<text text-anchor="middle" x="277.9229" y="-474.4" font-family="Verdana" font-size="14.00" fill="#000000">Debug</text>
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M296.7449,-208C296.7449,-208 259.1009,-208 259.1009,-208 253.1009,-208 247.1009,-202 247.1009,-196 247.1009,-196 247.1009,-184 247.1009,-184 247.1009,-178 253.1009,-172 259.1009,-172 259.1009,-172 296.7449,-172 296.7449,-172 302.7449,-172 308.7449,-178 308.7449,-184 308.7449,-184 308.7449,-196 308.7449,-196 308.7449,-202 302.7449,-208 296.7449,-208"/>
<text text-anchor="middle" x="277.9229" y="-194.2" font-family="Verdana" font-size="14.00" fill="#000000">logrus</text>
<text text-anchor="middle" x="277.9229" y="-177.4" font-family="Verdana" font-size="14.00" fill="#000000">Debug</text>
</a>
</g>
</g>
@ -88,17 +88,17 @@
<g id="edge4" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/transport.Mux&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge4"><a xlink:title="at multi.go:19: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:22: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M103.9715,-178.0534C117.883,-180.8976 134.17,-186.3907 145.3282,-197 178.201,-228.2556 197.3996,-347.2522 217.3282,-388 229.8426,-413.588 247.011,-441.1015 259.8787,-460.6131"/>
<polygon fill="#8b4513" stroke="#8b4513" points="256.9968,-462.6 265.456,-468.9791 262.8212,-458.7171 256.9968,-462.6"/>
<path fill="none" stroke="#8b4513" d="M103.7904,-87.227C126.3206,-80.9219 158.2954,-76.3427 181.3282,-91 213.1999,-111.282 189.4525,-142.5028 217.3282,-168 223.0058,-173.1931 230.0041,-177.1837 237.2042,-180.243"/>
<polygon fill="#8b4513" stroke="#8b4513" points="236.4491,-183.6945 247.0426,-183.8631 238.8664,-177.1251 236.4491,-183.6945"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/transport.init -->
<g id="node2" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/transport.init</title>
<g id="a_node2"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/transport.init | defined in .:0&#10;at errors.go:6: calling [github.com/samber/oops.Errorf]&#10;at multi.go:8: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M91.6641,-57C91.6641,-57 61.6641,-57 61.6641,-57 55.6641,-57 49.6641,-51 49.6641,-45 49.6641,-45 49.6641,-33 49.6641,-33 49.6641,-27 55.6641,-21 61.6641,-21 61.6641,-21 91.6641,-21 91.6641,-21 97.6641,-21 103.6641,-27 103.6641,-33 103.6641,-33 103.6641,-45 103.6641,-45 103.6641,-51 97.6641,-57 91.6641,-57"/>
<text text-anchor="middle" x="76.6641" y="-34.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
<g id="a_node2"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/transport.init | defined in .:0&#10;at multi.go:8: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]&#10;at errors.go:6: calling [github.com/samber/oops.Errorf]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M91.6641,-53C91.6641,-53 61.6641,-53 61.6641,-53 55.6641,-53 49.6641,-47 49.6641,-41 49.6641,-41 49.6641,-29 49.6641,-29 49.6641,-23 55.6641,-17 61.6641,-17 61.6641,-17 91.6641,-17 91.6641,-17 97.6641,-17 103.6641,-23 103.6641,-29 103.6641,-29 103.6641,-41 103.6641,-41 103.6641,-47 97.6641,-53 91.6641,-53"/>
<text text-anchor="middle" x="76.6641" y="-30.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
</a>
</g>
</g>
@ -113,11 +113,11 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/transport.init&#45;&gt;github.com/samber/oops.Errorf -->
<g id="edge11" class="edge">
<g id="edge5" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/transport.init&#45;&gt;github.com/samber/oops.Errorf</title>
<g id="a_edge11"><a xlink:title="at errors.go:6: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M103.8068,-38.3257C138.4765,-37.4644 198.7348,-35.9673 238.475,-34.98"/>
<polygon fill="#8b4513" stroke="#8b4513" points="238.6944,-38.4758 248.6043,-34.7284 238.5204,-31.4779 238.6944,-38.4758"/>
<g id="a_edge5"><a xlink:title="at errors.go:6: calling [github.com/samber/oops.Errorf]">
<path fill="none" stroke="#8b4513" d="M103.8068,-34.8651C138.4765,-34.6929 198.7348,-34.3935 238.475,-34.196"/>
<polygon fill="#8b4513" stroke="#8b4513" points="238.6219,-37.6954 248.6043,-34.1457 238.587,-30.6955 238.6219,-37.6954"/>
</a>
</g>
</g>
@ -132,167 +132,38 @@
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/transport.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger -->
<g id="edge16" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/transport.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_edge16"><a xlink:title="at multi.go:8: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="none" stroke="#8b4513" d="M103.9173,-44.9123C125.1259,-49.6571 155.2389,-56.7091 181.3282,-64 192.1517,-67.0247 203.5808,-70.4675 214.6411,-73.9321"/>
<polygon fill="#8b4513" stroke="#8b4513" points="213.6512,-77.2899 224.2413,-76.9723 215.7646,-70.6165 213.6512,-77.2899"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Name -->
<g id="node5" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Name</title>
<g id="a_node5"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Name | defined in multi.go:59&#10;at multi.go:60: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:67: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:67: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M93.5921,-454C93.5921,-454 59.7361,-454 59.7361,-454 53.7361,-454 47.7361,-448 47.7361,-442 47.7361,-442 47.7361,-430 47.7361,-430 47.7361,-424 53.7361,-418 59.7361,-418 59.7361,-418 93.5921,-418 93.5921,-418 99.5921,-418 105.5921,-424 105.5921,-430 105.5921,-430 105.5921,-442 105.5921,-442 105.5921,-448 99.5921,-454 93.5921,-454"/>
<text text-anchor="middle" x="76.6641" y="-431.8" font-family="Verdana" font-size="14.00" fill="#000000">Name</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Name&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField -->
<g id="edge5" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Name&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField</title>
<g id="a_edge5"><a xlink:title="at multi.go:67: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="none" stroke="#8b4513" d="M105.5778,-423.848C117.9073,-418.5423 132.4025,-412.1399 145.3282,-406 161.1284,-398.4946 164.1892,-394.7461 180.3282,-388 195.4432,-381.682 212.2792,-375.7773 227.6541,-370.803"/>
<polygon fill="#8b4513" stroke="#8b4513" points="229.0413,-374.0348 237.5139,-367.6735 226.9236,-367.3628 229.0413,-374.0348"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Name&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge1" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Name&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge1"><a xlink:title="at multi.go:60: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:67: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M105.6987,-445.6398C118.6022,-450.7652 133.511,-457.9071 145.3282,-467 164.8576,-482.0271 158.0737,-499.4195 180.3282,-510 198.1031,-518.4508 219.2138,-514.9507 237.2466,-508.4076"/>
<polygon fill="#8b4513" stroke="#8b4513" points="238.9395,-511.4991 246.9075,-504.5161 236.324,-505.0061 238.9395,-511.4991"/>
<title>github.com/go&#45;i2p/go&#45;i2p/lib/transport.init&#45;&gt;github.com/go&#45;i2p/logger.GetGoI2PLogger</title>
<g id="a_edge1"><a xlink:title="at multi.go:8: calling [github.com/go&#45;i2p/logger.GetGoI2PLogger]">
<path fill="none" stroke="#8b4513" d="M103.8574,-42.2126C125.0339,-47.9071 155.1327,-56.1709 181.3282,-64 191.7286,-67.1084 202.72,-70.5169 213.415,-73.9008"/>
<polygon fill="#8b4513" stroke="#8b4513" points="212.5376,-77.2945 223.1281,-76.9923 214.6606,-70.6242 212.5376,-77.2945"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Close -->
<g id="node6" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Close</title>
<g id="a_node6"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Close | defined in multi.go:43&#10;at multi.go:49: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at multi.go:49: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]&#10;at multi.go:44: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:54: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:51: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:49: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:51: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M92.5506,-393C92.5506,-393 60.7776,-393 60.7776,-393 54.7776,-393 48.7776,-387 48.7776,-381 48.7776,-381 48.7776,-369 48.7776,-369 48.7776,-363 54.7776,-357 60.7776,-357 60.7776,-357 92.5506,-357 92.5506,-357 98.5506,-357 104.5506,-363 104.5506,-369 104.5506,-369 104.5506,-381 104.5506,-381 104.5506,-387 98.5506,-393 92.5506,-393"/>
<text text-anchor="middle" x="76.6641" y="-370.8" font-family="Verdana" font-size="14.00" fill="#000000">Close</text>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Compatible -->
<g id="node5" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Compatible</title>
<g id="a_node5"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Compatible | defined in multi.go:100&#10;at multi.go:101: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:104: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:101: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:109: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:104: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:101: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.RouterInfo).String]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M109.4929,-291C109.4929,-291 43.8353,-291 43.8353,-291 37.8353,-291 31.8353,-285 31.8353,-279 31.8353,-279 31.8353,-267 31.8353,-267 31.8353,-261 37.8353,-255 43.8353,-255 43.8353,-255 109.4929,-255 109.4929,-255 115.4929,-255 121.4929,-261 121.4929,-267 121.4929,-267 121.4929,-279 121.4929,-279 121.4929,-285 115.4929,-291 109.4929,-291"/>
<text text-anchor="middle" x="76.6641" y="-268.8" font-family="Verdana" font-size="14.00" fill="#000000">Compatible</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Close&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField -->
<g id="edge21" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Close&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField</title>
<g id="a_edge21"><a xlink:title="at multi.go:49: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:51: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="none" stroke="#8b4513" d="M104.7507,-370.5642C125.5641,-367.4338 154.6509,-363.3875 180.3282,-361 195.5635,-359.5834 212.1768,-358.5444 227.3063,-357.7927"/>
<polygon fill="#8b4513" stroke="#8b4513" points="227.6822,-361.2791 237.5083,-357.3171 227.3562,-354.2867 227.6822,-361.2791"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/logger.Logger).WithError -->
<g id="node11" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).WithError</title>
<g id="a_node11"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).WithError | defined in log.go:66">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M306.4544,-252C306.4544,-252 249.3914,-252 249.3914,-252 243.3914,-252 237.3914,-246 237.3914,-240 237.3914,-240 237.3914,-228 237.3914,-228 237.3914,-222 243.3914,-216 249.3914,-216 249.3914,-216 306.4544,-216 306.4544,-216 312.4544,-216 318.4544,-222 318.4544,-228 318.4544,-228 318.4544,-240 318.4544,-240 318.4544,-246 312.4544,-252 306.4544,-252"/>
<text text-anchor="middle" x="277.9229" y="-238.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="277.9229" y="-221.4" font-family="Verdana" font-size="14.00" fill="#000000">WithError</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Close&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError -->
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Compatible&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField -->
<g id="edge2" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Close&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError</title>
<g id="a_edge2"><a xlink:title="at multi.go:49: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="none" stroke="#8b4513" d="M104.8296,-365.8181C117.8444,-360.8161 133.09,-353.8287 145.3282,-345 184.1222,-317.0138 179.4052,-294.1556 217.3282,-265 220.9027,-262.2519 224.7578,-259.6343 228.7304,-257.1694"/>
<polygon fill="#8b4513" stroke="#8b4513" points="230.676,-260.0865 237.5517,-252.0257 227.1499,-254.0394 230.676,-260.0865"/>
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Compatible&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField</title>
<g id="a_edge2"><a xlink:title="at multi.go:101: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:104: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="none" stroke="#8b4513" d="M118.9067,-254.8625C127.6696,-251.0108 136.8224,-246.9219 145.3282,-243 161.3966,-235.5911 164.331,-221.0824 181.3282,-226 206.0518,-233.1531 230.5303,-248.728 248.6595,-262.3489"/>
<polygon fill="#8b4513" stroke="#8b4513" points="246.975,-265.4716 257.0225,-268.833 251.2642,-259.9396 246.975,-265.4716"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/logger.Logger).Warn -->
<g id="node12" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).Warn</title>
<g id="a_node12"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).Warn | defined in log.go:30">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M295.6892,-313C295.6892,-313 260.1566,-313 260.1566,-313 254.1566,-313 248.1566,-307 248.1566,-301 248.1566,-301 248.1566,-289 248.1566,-289 248.1566,-283 254.1566,-277 260.1566,-277 260.1566,-277 295.6892,-277 295.6892,-277 301.6892,-277 307.6892,-283 307.6892,-289 307.6892,-289 307.6892,-301 307.6892,-301 307.6892,-307 301.6892,-313 295.6892,-313"/>
<text text-anchor="middle" x="277.9229" y="-299.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="277.9229" y="-282.4" font-family="Verdana" font-size="14.00" fill="#000000">Warn</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Close&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warn -->
<g id="edge13" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Close&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warn</title>
<g id="a_edge13"><a xlink:title="at multi.go:49: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]">
<path fill="none" stroke="#8b4513" d="M104.6483,-363.8763C139.3984,-350.0632 198.8965,-326.4128 238.3182,-310.7428"/>
<polygon fill="#8b4513" stroke="#8b4513" points="239.8809,-313.8881 247.8808,-306.9417 237.2951,-307.3831 239.8809,-313.8881"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Close&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge20" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Close&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge20"><a xlink:title="at multi.go:44: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:54: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:51: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M104.8019,-382.5665C118.4339,-387.4116 134.2158,-394.9159 145.3282,-406 171.9434,-432.5474 149.1455,-462.0054 180.3282,-483 196.707,-494.0275 218.3764,-495.8511 237.1352,-494.5621"/>
<polygon fill="#8b4513" stroke="#8b4513" points="237.5992,-498.0333 247.2053,-493.5644 236.909,-491.0674 237.5992,-498.0333"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession -->
<g id="node7" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession</title>
<g id="a_node7"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession | defined in multi.go:74&#10;at multi.go:83: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]&#10;at multi.go:93: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at multi.go:75: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.RouterInfo).String]&#10;at multi.go:75: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:79: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:89: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:75: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:79: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:83: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:89: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:83: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M108.1529,-332C108.1529,-332 45.1753,-332 45.1753,-332 39.1753,-332 33.1753,-326 33.1753,-320 33.1753,-320 33.1753,-308 33.1753,-308 33.1753,-302 39.1753,-296 45.1753,-296 45.1753,-296 108.1529,-296 108.1529,-296 114.1529,-296 120.1529,-302 120.1529,-308 120.1529,-308 120.1529,-320 120.1529,-320 120.1529,-326 114.1529,-332 108.1529,-332"/>
<text text-anchor="middle" x="76.6641" y="-309.8" font-family="Verdana" font-size="14.00" fill="#000000">GetSession</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField -->
<g id="edge22" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField</title>
<g id="a_edge22"><a xlink:title="at multi.go:75: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:79: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:83: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:89: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="none" stroke="#8b4513" d="M120.3343,-323.1134C151.8702,-329.6945 194.5346,-338.598 227.5179,-345.4812"/>
<polygon fill="#8b4513" stroke="#8b4513" points="226.9161,-348.9309 237.4203,-347.5476 228.3462,-342.0785 226.9161,-348.9309"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError -->
<g id="edge23" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError</title>
<g id="a_edge23"><a xlink:title="at multi.go:83: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="none" stroke="#8b4513" d="M120.2654,-301.616C129.5345,-297.2916 138.5548,-291.5553 145.3282,-284 180.1409,-245.1686 138.31,-202.8914 180.3282,-172 197.8451,-159.1217 199.3009,-191.8465 217.3282,-204 220.9858,-206.4658 224.8752,-208.8542 228.8496,-211.1346"/>
<polygon fill="#8b4513" stroke="#8b4513" points="227.177,-214.2091 237.6291,-215.9428 230.5395,-208.0695 227.177,-214.2091"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warn -->
<g id="edge6" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warn</title>
<g id="a_edge6"><a xlink:title="at multi.go:83: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]">
<path fill="none" stroke="#8b4513" d="M120.4579,-299.6946C129.2991,-295.5311 138.0901,-290.3468 145.3282,-284 167.9657,-264.1502 154.1098,-240.8008 180.3282,-226 201.1346,-214.2544 198.2003,-250.6826 217.3282,-265 223.8698,-269.8965 231.3341,-274.3482 238.7356,-278.235"/>
<polygon fill="#8b4513" stroke="#8b4513" points="237.491,-281.5251 248.0031,-282.8472 240.6099,-275.2583 237.491,-281.5251"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="node13" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_node13"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).Error | defined in log.go:42">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M295.6892,-191C295.6892,-191 260.1566,-191 260.1566,-191 254.1566,-191 248.1566,-185 248.1566,-179 248.1566,-179 248.1566,-167 248.1566,-167 248.1566,-161 254.1566,-155 260.1566,-155 260.1566,-155 295.6892,-155 295.6892,-155 301.6892,-155 307.6892,-161 307.6892,-167 307.6892,-167 307.6892,-179 307.6892,-179 307.6892,-185 301.6892,-191 295.6892,-191"/>
<text text-anchor="middle" x="277.9229" y="-177.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="277.9229" y="-160.4" font-family="Verdana" font-size="14.00" fill="#000000">Error</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="edge8" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_edge8"><a xlink:title="at multi.go:93: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M120.3453,-301.6872C129.6112,-297.3598 138.6099,-291.6044 145.3282,-284 181.5467,-243.0047 136.4914,-198.722 180.3282,-166 196.6731,-153.7993 219.155,-154.5834 238.4214,-158.8558"/>
<polygon fill="#8b4513" stroke="#8b4513" points="237.5973,-162.2577 248.1539,-161.3577 239.3402,-155.4781 237.5973,-162.2577"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge15" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge15"><a xlink:title="at multi.go:75: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:79: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:89: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M120.2652,-327.0554C129.5343,-331.5133 138.5546,-337.3712 145.3282,-345 179.6726,-383.681 143.7899,-419.3844 180.3282,-456 195.406,-471.1097 217.8094,-478.8653 237.3497,-482.8413"/>
<polygon fill="#8b4513" stroke="#8b4513" points="236.7959,-486.2977 247.2531,-484.595 238.0166,-479.4049 236.7959,-486.2977"/>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Compatible&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge3" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Compatible&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge3"><a xlink:title="at multi.go:101: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:109: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:104: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M121.1499,-254.88C129.3101,-251.1871 137.6652,-247.153 145.3282,-243 161.6931,-234.1309 163.4859,-227.925 180.3282,-220 198.3784,-211.5066 219.4192,-204.6831 237.3329,-199.7027"/>
<polygon fill="#8b4513" stroke="#8b4513" points="238.4464,-203.0278 247.1976,-197.0557 236.6322,-196.267 238.4464,-203.0278"/>
</a>
</g>
</g>
@ -300,99 +171,228 @@
<g id="node15" class="node">
<title>(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.RouterInfo).String</title>
<g id="a_node15"><a xlink:title="(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.RouterInfo).String | defined in router_info.go:155">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M309.4005,-603C309.4005,-603 246.4453,-603 246.4453,-603 240.4453,-603 234.4453,-597 234.4453,-591 234.4453,-591 234.4453,-579 234.4453,-579 234.4453,-573 240.4453,-567 246.4453,-567 246.4453,-567 309.4005,-567 309.4005,-567 315.4005,-567 321.4005,-573 321.4005,-579 321.4005,-579 321.4005,-591 321.4005,-591 321.4005,-597 315.4005,-603 309.4005,-603"/>
<text text-anchor="middle" x="277.9229" y="-589.2" font-family="Verdana" font-size="14.00" fill="#000000">router_info</text>
<text text-anchor="middle" x="277.9229" y="-572.4" font-family="Verdana" font-size="14.00" fill="#000000">String</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.RouterInfo).String -->
<g id="edge14" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.RouterInfo).String</title>
<g id="a_edge14"><a xlink:title="at multi.go:75: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.RouterInfo).String]">
<path fill="none" stroke="#8b4513" d="M120.3602,-326.9718C129.6254,-331.4331 138.6201,-337.3135 145.3282,-345 181.2967,-386.2148 157.221,-413.4172 180.3282,-463 192.9292,-490.0387 198.9608,-495.4944 217.3282,-519 228.2489,-532.9757 241.4624,-547.5952 252.7598,-559.5123"/>
<polygon fill="#8b4513" stroke="#8b4513" points="250.4158,-562.1248 259.8637,-566.9194 255.4679,-557.2795 250.4158,-562.1248"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).SetIdentity -->
<g id="node8" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).SetIdentity</title>
<g id="a_node8"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).SetIdentity | defined in multi.go:27&#10;at multi.go:32: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at multi.go:32: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at multi.go:28: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:32: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:36: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:28: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:38: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:36: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M107.6,-271C107.6,-271 45.7282,-271 45.7282,-271 39.7282,-271 33.7282,-265 33.7282,-259 33.7282,-259 33.7282,-247 33.7282,-247 33.7282,-241 39.7282,-235 45.7282,-235 45.7282,-235 107.6,-235 107.6,-235 113.6,-235 119.6,-241 119.6,-247 119.6,-247 119.6,-259 119.6,-259 119.6,-265 113.6,-271 107.6,-271"/>
<text text-anchor="middle" x="76.6641" y="-248.8" font-family="Verdana" font-size="14.00" fill="#000000">SetIdentity</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).SetIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField -->
<g id="edge17" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).SetIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField</title>
<g id="a_edge17"><a xlink:title="at multi.go:28: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:32: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:36: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="none" stroke="#8b4513" d="M118.389,-271.0008C127.3591,-275.1027 136.7257,-279.5643 145.3282,-284 178.2551,-300.9782 184.709,-308.4378 217.3282,-326 221.863,-328.4416 226.6233,-330.9274 231.3986,-333.3707"/>
<polygon fill="#8b4513" stroke="#8b4513" points="230.0412,-336.6062 240.5447,-337.9938 233.199,-330.359 230.0412,-336.6062"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).SetIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError -->
<g id="edge9" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).SetIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError</title>
<g id="a_edge9"><a xlink:title="at multi.go:32: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="none" stroke="#8b4513" d="M119.7005,-245.5061C128.9929,-242.2695 138.1653,-237.6352 145.3282,-231 175.6016,-202.9566 146.0876,-168.0325 180.3282,-145 206.0105,-127.7244 194.4988,-183.0992 217.3282,-204 220.6819,-207.0703 224.4079,-209.8984 228.3168,-212.4871"/>
<polygon fill="#8b4513" stroke="#8b4513" points="226.7209,-215.6117 237.0928,-217.7733 230.3327,-209.6154 226.7209,-215.6117"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).SetIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="edge10" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).SetIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_edge10"><a xlink:title="at multi.go:32: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M119.6939,-246.4647C129.2081,-243.1966 138.4812,-238.3078 145.3282,-231 189.1804,-184.1965 129.7749,-130.4708 180.3282,-91 205.0222,-71.7195 193.152,-131.074 217.3282,-151 223.5222,-156.1051 231.0014,-160.0764 238.5596,-163.1486"/>
<polygon fill="#8b4513" stroke="#8b4513" points="237.4904,-166.4835 248.0848,-166.5768 239.861,-159.8971 237.4904,-166.4835"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).SetIdentity&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge18" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).SetIdentity&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge18"><a xlink:title="at multi.go:28: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:38: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:36: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M119.7048,-265.1144C129.3346,-269.6432 138.658,-275.769 145.3282,-284 191.1584,-340.554 134.242,-387.6544 180.3282,-444 194.568,-461.4098 217.2689,-471.9793 237.1946,-478.28"/>
<polygon fill="#8b4513" stroke="#8b4513" points="236.4232,-481.7004 247.0021,-481.1204 238.3705,-474.9767 236.4232,-481.7004"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Compatible -->
<g id="node9" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Compatible</title>
<g id="a_node9"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Compatible | defined in multi.go:100&#10;at multi.go:101: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.RouterInfo).String]&#10;at multi.go:101: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:109: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:104: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:101: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:104: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M109.4929,-515C109.4929,-515 43.8353,-515 43.8353,-515 37.8353,-515 31.8353,-509 31.8353,-503 31.8353,-503 31.8353,-491 31.8353,-491 31.8353,-485 37.8353,-479 43.8353,-479 43.8353,-479 109.4929,-479 109.4929,-479 115.4929,-479 121.4929,-485 121.4929,-491 121.4929,-491 121.4929,-503 121.4929,-503 121.4929,-509 115.4929,-515 109.4929,-515"/>
<text text-anchor="middle" x="76.6641" y="-492.8" font-family="Verdana" font-size="14.00" fill="#000000">Compatible</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Compatible&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField -->
<g id="edge19" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Compatible&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField</title>
<g id="a_edge19"><a xlink:title="at multi.go:101: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:104: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="none" stroke="#8b4513" d="M121.5631,-479.5925C129.6832,-475.8305 137.9179,-471.5887 145.3282,-467 185.5762,-442.0768 226.5498,-405.7423 252.0844,-381.5106"/>
<polygon fill="#8b4513" stroke="#8b4513" points="254.6993,-383.8522 259.4953,-374.405 249.8548,-378.7995 254.6993,-383.8522"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Compatible&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge7" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Compatible&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge7"><a xlink:title="at multi.go:101: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:109: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:104: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M100.6393,-515.1742C121.5024,-528.7834 152.7884,-543.9486 181.3282,-537 202.8893,-531.7505 225.01,-520.7844 242.6332,-510.4562"/>
<polygon fill="#8b4513" stroke="#8b4513" points="244.6665,-513.3169 251.4122,-505.147 241.0441,-507.327 244.6665,-513.3169"/>
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M309.4005,-589C309.4005,-589 246.4453,-589 246.4453,-589 240.4453,-589 234.4453,-583 234.4453,-577 234.4453,-577 234.4453,-565 234.4453,-565 234.4453,-559 240.4453,-553 246.4453,-553 246.4453,-553 309.4005,-553 309.4005,-553 315.4005,-553 321.4005,-559 321.4005,-565 321.4005,-565 321.4005,-577 321.4005,-577 321.4005,-583 315.4005,-589 309.4005,-589"/>
<text text-anchor="middle" x="277.9229" y="-575.2" font-family="Verdana" font-size="14.00" fill="#000000">router_info</text>
<text text-anchor="middle" x="277.9229" y="-558.4" font-family="Verdana" font-size="14.00" fill="#000000">String</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Compatible&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.RouterInfo).String -->
<g id="edge3" class="edge">
<g id="edge13" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Compatible&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.RouterInfo).String</title>
<g id="a_edge3"><a xlink:title="at multi.go:101: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.RouterInfo).String]">
<path fill="none" stroke="#8b4513" d="M89.6192,-515.0706C107.1729,-537.8251 140.89,-575.7817 180.3282,-591 193.8369,-596.2127 209.1783,-597.2857 223.6313,-596.3988"/>
<polygon fill="#8b4513" stroke="#8b4513" points="224.3268,-599.8493 233.9595,-595.4379 223.6782,-592.8794 224.3268,-599.8493"/>
<g id="a_edge13"><a xlink:title="at multi.go:101: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.RouterInfo).String]">
<path fill="none" stroke="#8b4513" d="M121.4536,-286.9659C130.2328,-291.3191 138.7467,-296.9033 145.3282,-304 209.0005,-372.6574 169.612,-421.4322 217.3282,-502 226.6798,-517.79 239.8727,-533.3307 251.5618,-545.6539"/>
<polygon fill="#8b4513" stroke="#8b4513" points="249.1153,-548.1585 258.5977,-552.8845 254.1322,-543.2767 249.1153,-548.1585"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).SetIdentity -->
<g id="node6" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).SetIdentity</title>
<g id="a_node6"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).SetIdentity | defined in multi.go:27&#10;at multi.go:28: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:38: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:36: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:32: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at multi.go:32: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at multi.go:28: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:32: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:36: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M107.6,-352C107.6,-352 45.7282,-352 45.7282,-352 39.7282,-352 33.7282,-346 33.7282,-340 33.7282,-340 33.7282,-328 33.7282,-328 33.7282,-322 39.7282,-316 45.7282,-316 45.7282,-316 107.6,-316 107.6,-316 113.6,-316 119.6,-322 119.6,-328 119.6,-328 119.6,-340 119.6,-340 119.6,-346 113.6,-352 107.6,-352"/>
<text text-anchor="middle" x="76.6641" y="-329.8" font-family="Verdana" font-size="14.00" fill="#000000">SetIdentity</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).SetIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField -->
<g id="edge22" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).SetIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField</title>
<g id="a_edge22"><a xlink:title="at multi.go:28: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:32: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:36: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="none" stroke="#8b4513" d="M119.8392,-323.9173C151.4503,-316.5352 194.437,-306.4965 227.6051,-298.7507"/>
<polygon fill="#8b4513" stroke="#8b4513" points="228.618,-302.1084 237.56,-296.4259 227.0261,-295.2918 228.618,-302.1084"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/logger.Logger).WithError -->
<g id="node11" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).WithError</title>
<g id="a_node11"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).WithError | defined in log.go:66">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M306.4544,-366C306.4544,-366 249.3914,-366 249.3914,-366 243.3914,-366 237.3914,-360 237.3914,-354 237.3914,-354 237.3914,-342 237.3914,-342 237.3914,-336 243.3914,-330 249.3914,-330 249.3914,-330 306.4544,-330 306.4544,-330 312.4544,-330 318.4544,-336 318.4544,-342 318.4544,-342 318.4544,-354 318.4544,-354 318.4544,-360 312.4544,-366 306.4544,-366"/>
<text text-anchor="middle" x="277.9229" y="-352.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="277.9229" y="-335.4" font-family="Verdana" font-size="14.00" fill="#000000">WithError</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).SetIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError -->
<g id="edge7" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).SetIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError</title>
<g id="a_edge7"><a xlink:title="at multi.go:32: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="none" stroke="#8b4513" d="M119.4894,-332.611C138.4588,-332.3537 161.0295,-332.5366 181.3282,-334 196.2964,-335.0791 212.4686,-337.0871 227.2203,-339.2521"/>
<polygon fill="#8b4513" stroke="#8b4513" points="226.7612,-342.7224 237.1739,-340.7666 227.8142,-335.8021 226.7612,-342.7224"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="node12" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_node12"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).Error | defined in log.go:42">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M295.6892,-427C295.6892,-427 260.1566,-427 260.1566,-427 254.1566,-427 248.1566,-421 248.1566,-415 248.1566,-415 248.1566,-403 248.1566,-403 248.1566,-397 254.1566,-391 260.1566,-391 260.1566,-391 295.6892,-391 295.6892,-391 301.6892,-391 307.6892,-397 307.6892,-403 307.6892,-403 307.6892,-415 307.6892,-415 307.6892,-421 301.6892,-427 295.6892,-427"/>
<text text-anchor="middle" x="277.9229" y="-413.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="277.9229" y="-396.4" font-family="Verdana" font-size="14.00" fill="#000000">Error</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).SetIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="edge8" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).SetIdentity&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_edge8"><a xlink:title="at multi.go:32: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M119.8392,-350.0894C154.9505,-363.1738 204.0961,-381.4881 238.2331,-394.2094"/>
<polygon fill="#8b4513" stroke="#8b4513" points="237.283,-397.5904 247.8757,-397.8028 239.7274,-391.0311 237.283,-397.5904"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).SetIdentity&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge6" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).SetIdentity&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge6"><a xlink:title="at multi.go:28: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:38: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:36: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M119.4592,-318.4193C128.3626,-314.3353 137.4315,-309.5058 145.3282,-304 183.2321,-277.5726 181.657,-258.3713 217.3282,-229 223.9227,-223.5701 231.3102,-218.2623 238.5985,-213.3977"/>
<polygon fill="#8b4513" stroke="#8b4513" points="240.572,-216.2894 247.0554,-207.9099 236.7615,-210.4174 240.572,-216.2894"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Name -->
<g id="node7" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Name</title>
<g id="a_node7"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Name | defined in multi.go:59&#10;at multi.go:60: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:67: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:67: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M93.5921,-230C93.5921,-230 59.7361,-230 59.7361,-230 53.7361,-230 47.7361,-224 47.7361,-218 47.7361,-218 47.7361,-206 47.7361,-206 47.7361,-200 53.7361,-194 59.7361,-194 59.7361,-194 93.5921,-194 93.5921,-194 99.5921,-194 105.5921,-200 105.5921,-206 105.5921,-206 105.5921,-218 105.5921,-218 105.5921,-224 99.5921,-230 93.5921,-230"/>
<text text-anchor="middle" x="76.6641" y="-207.8" font-family="Verdana" font-size="14.00" fill="#000000">Name</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Name&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField -->
<g id="edge23" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Name&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField</title>
<g id="a_edge23"><a xlink:title="at multi.go:67: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="none" stroke="#8b4513" d="M105.4856,-210.2007C126.9914,-209.8021 156.7717,-211.2759 181.3282,-220 207.1781,-229.1836 232.5122,-247.1941 250.7459,-262.2306"/>
<polygon fill="#8b4513" stroke="#8b4513" points="248.7086,-265.0919 258.6002,-268.8876 253.2346,-259.7519 248.7086,-265.0919"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Name&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge9" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Name&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge9"><a xlink:title="at multi.go:60: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:67: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M105.4695,-206.8342C118.4736,-203.5226 133.5283,-198.2456 145.3282,-190 166.0971,-175.487 157.5674,-156.1319 180.3282,-145 197.722,-136.493 199.9645,-159.4318 217.3282,-168 223.6668,-171.1278 230.5659,-174.0513 237.3631,-176.681"/>
<polygon fill="#8b4513" stroke="#8b4513" points="236.5786,-180.1227 247.1717,-180.313 239.0094,-173.5583 236.5786,-180.1227"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession -->
<g id="node8" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession</title>
<g id="a_node8"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession | defined in multi.go:74&#10;at multi.go:75: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.RouterInfo).String]&#10;at multi.go:75: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:79: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:83: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:89: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:93: calling [(*github.com/go&#45;i2p/logger.Logger).Error]&#10;at multi.go:75: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:79: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:89: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:83: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at multi.go:83: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M108.1529,-474C108.1529,-474 45.1753,-474 45.1753,-474 39.1753,-474 33.1753,-468 33.1753,-462 33.1753,-462 33.1753,-450 33.1753,-450 33.1753,-444 39.1753,-438 45.1753,-438 45.1753,-438 108.1529,-438 108.1529,-438 114.1529,-438 120.1529,-444 120.1529,-450 120.1529,-450 120.1529,-462 120.1529,-462 120.1529,-468 114.1529,-474 108.1529,-474"/>
<text text-anchor="middle" x="76.6641" y="-451.8" font-family="Verdana" font-size="14.00" fill="#000000">GetSession</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField -->
<g id="edge11" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField</title>
<g id="a_edge11"><a xlink:title="at multi.go:75: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:79: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:83: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:89: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="none" stroke="#8b4513" d="M102.5511,-474.0761C125.5168,-487.6738 158.8205,-501.1264 181.3282,-483 239.7864,-435.9211 171.5244,-377.4625 217.3282,-318 220.536,-313.8357 224.4586,-310.1825 228.7508,-306.9887"/>
<polygon fill="#8b4513" stroke="#8b4513" points="230.8839,-309.7769 237.3696,-301.3992 227.075,-303.9039 230.8839,-309.7769"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError -->
<g id="edge17" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError</title>
<g id="a_edge17"><a xlink:title="at multi.go:83: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="none" stroke="#8b4513" d="M91.8312,-474.1292C113.089,-497.3382 152.3833,-532.0637 181.3282,-510 229.3486,-473.3958 179.2181,-425.8343 217.3282,-379 220.6005,-374.9786 224.531,-371.425 228.798,-368.2971"/>
<polygon fill="#8b4513" stroke="#8b4513" points="230.8247,-371.1549 237.3338,-362.7954 227.0323,-365.2712 230.8247,-371.1549"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error -->
<g id="edge14" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Error</title>
<g id="a_edge14"><a xlink:title="at multi.go:93: calling [(*github.com/go&#45;i2p/logger.Logger).Error]">
<path fill="none" stroke="#8b4513" d="M86.8007,-474.346C105.1949,-505.2348 145.4885,-561.927 181.3282,-537 219.0795,-510.7434 186.7777,-474.3691 217.3282,-440 223.3174,-433.2623 231.1181,-427.7873 239.1189,-423.4208"/>
<polygon fill="#8b4513" stroke="#8b4513" points="240.7391,-426.5242 248.1511,-418.9536 237.6358,-420.2496 240.7391,-426.5242"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/logger.Logger).Warn -->
<g id="node13" class="node">
<title>(*github.com/go&#45;i2p/logger.Logger).Warn</title>
<g id="a_node13"><a xlink:title="(*github.com/go&#45;i2p/logger.Logger).Warn | defined in log.go:30">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M295.6892,-488C295.6892,-488 260.1566,-488 260.1566,-488 254.1566,-488 248.1566,-482 248.1566,-476 248.1566,-476 248.1566,-464 248.1566,-464 248.1566,-458 254.1566,-452 260.1566,-452 260.1566,-452 295.6892,-452 295.6892,-452 301.6892,-452 307.6892,-458 307.6892,-464 307.6892,-464 307.6892,-476 307.6892,-476 307.6892,-482 301.6892,-488 295.6892,-488"/>
<text text-anchor="middle" x="277.9229" y="-474.2" font-family="Verdana" font-size="14.00" fill="#000000">logger</text>
<text text-anchor="middle" x="277.9229" y="-457.4" font-family="Verdana" font-size="14.00" fill="#000000">Warn</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warn -->
<g id="edge18" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warn</title>
<g id="a_edge18"><a xlink:title="at multi.go:83: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]">
<path fill="none" stroke="#8b4513" d="M87.27,-474.0538C103.5263,-499.7146 137.2934,-545.6559 180.3282,-564 206.089,-574.9809 197.5515,-532.8262 217.3282,-513 224.1571,-506.154 232.1823,-499.6304 240.1176,-493.8273"/>
<polygon fill="#8b4513" stroke="#8b4513" points="242.1448,-496.6805 248.3006,-488.0574 238.111,-490.9596 242.1448,-496.6805"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge16" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge16"><a xlink:title="at multi.go:75: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:79: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:89: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M120.3647,-443.2129C129.5203,-438.9192 138.4663,-433.2975 145.3282,-426 209.1865,-358.0876 159.1,-301.7974 217.3282,-229 223.1817,-221.6819 230.7976,-215.3073 238.6434,-209.9507"/>
<polygon fill="#8b4513" stroke="#8b4513" points="240.6035,-212.8522 247.1746,-204.5413 236.855,-206.9404 240.6035,-212.8522"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.RouterInfo).String -->
<g id="edge10" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).GetSession&#45;&gt;(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.RouterInfo).String</title>
<g id="a_edge10"><a xlink:title="at multi.go:75: calling [(github.com/go&#45;i2p/go&#45;i2p/lib/common/router_info.RouterInfo).String]">
<path fill="none" stroke="#8b4513" d="M86.4378,-474.2873C102.0925,-501.3791 135.6311,-551.1147 180.3282,-571 193.7867,-576.9875 209.3595,-578.9084 224.0586,-578.834"/>
<polygon fill="#8b4513" stroke="#8b4513" points="224.1851,-582.3318 234.0585,-578.4893 223.9438,-575.336 224.1851,-582.3318"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Close -->
<g id="node9" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Close</title>
<g id="a_node9"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Close | defined in multi.go:43&#10;at multi.go:49: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]&#10;at multi.go:44: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:54: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:51: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:49: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]&#10;at multi.go:49: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:51: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M92.5506,-413C92.5506,-413 60.7776,-413 60.7776,-413 54.7776,-413 48.7776,-407 48.7776,-401 48.7776,-401 48.7776,-389 48.7776,-389 48.7776,-383 54.7776,-377 60.7776,-377 60.7776,-377 92.5506,-377 92.5506,-377 98.5506,-377 104.5506,-383 104.5506,-389 104.5506,-389 104.5506,-401 104.5506,-401 104.5506,-407 98.5506,-413 92.5506,-413"/>
<text text-anchor="middle" x="76.6641" y="-390.8" font-family="Verdana" font-size="14.00" fill="#000000">Close</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Close&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField -->
<g id="edge21" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Close&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithField</title>
<g id="a_edge21"><a xlink:title="at multi.go:49: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]&#10;at multi.go:51: calling [(*github.com/go&#45;i2p/logger.Logger).WithField]">
<path fill="none" stroke="#8b4513" d="M104.7499,-395.5567C127.2559,-394.6932 158.7023,-390.4177 181.3282,-375 206.089,-358.1275 195.2052,-338.2076 217.3282,-318 220.8508,-314.7823 224.7696,-311.8085 228.8718,-309.0817"/>
<polygon fill="#8b4513" stroke="#8b4513" points="230.7656,-312.0264 237.4819,-303.8324 227.1216,-306.0496 230.7656,-312.0264"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Close&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError -->
<g id="edge20" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Close&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).WithError</title>
<g id="a_edge20"><a xlink:title="at multi.go:49: calling [(*github.com/go&#45;i2p/logger.Logger).WithError]">
<path fill="none" stroke="#8b4513" d="M104.7807,-402.0703C126.1863,-406.2205 156.1561,-409.3546 181.3282,-402 199.5529,-396.6752 200.8578,-388.4457 217.3282,-379 222.0691,-376.2811 227.0748,-373.5328 232.0948,-370.8545"/>
<polygon fill="#8b4513" stroke="#8b4513" points="233.8654,-373.878 241.0922,-366.1305 230.6114,-367.6803 233.8654,-373.878"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Close&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warn -->
<g id="edge15" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Close&#45;&gt;(*github.com/go&#45;i2p/logger.Logger).Warn</title>
<g id="a_edge15"><a xlink:title="at multi.go:49: calling [(*github.com/go&#45;i2p/logger.Logger).Warn]">
<path fill="none" stroke="#8b4513" d="M104.6483,-405.4284C139.3984,-418.3782 198.8965,-440.5505 238.3182,-455.2411"/>
<polygon fill="#8b4513" stroke="#8b4513" points="237.2881,-458.5923 247.8808,-458.8047 239.7325,-452.033 237.2881,-458.5923"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Close&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug -->
<g id="edge19" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/transport.TransportMuxer).Close&#45;&gt;(*github.com/sirupsen/logrus.Logger).Debug</title>
<g id="a_edge19"><a xlink:title="at multi.go:44: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:54: calling [(*github.com/sirupsen/logrus.Logger).Debug]&#10;at multi.go:51: calling [(*github.com/sirupsen/logrus.Logger).Debug]">
<path fill="none" stroke="#8b4513" d="M104.8602,-387.4664C118.3442,-382.7512 133.9791,-375.5285 145.3282,-365 195.4677,-318.4859 171.0653,-279.3713 217.3282,-229 223.3498,-222.4436 230.7054,-216.5189 238.1882,-211.3813"/>
<polygon fill="#8b4513" stroke="#8b4513" points="240.4544,-214.0844 246.9585,-205.7209 236.6585,-208.2029 240.4544,-214.0844"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/tunnel"
![tunnel.svg](tunnel)
![tunnel.svg](tunnel.svg)
i2p garlic tunnel implementation

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 218 KiB

After

Width:  |  Height:  |  Size: 217 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/util"
![util.svg](util)
![util.svg](util.svg)

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/util/signals"
![signals.svg](signals)
![signals.svg](signals.svg)

View File

@ -14,66 +14,21 @@
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-212 284.9384,-212 284.9384,-8 8,-8"/>
<text text-anchor="middle" x="146.4692" y="-191.8" font-family="Arial" font-size="18.00" fill="#000000">signals</text>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.Handle -->
<g id="node1" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.Handle</title>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.Handle | defined in unix.go:15&#10;at unix.go:23: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleReload]&#10;at unix.go:25: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleInterrupted]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M68.641,-143C68.641,-143 27.7854,-143 27.7854,-143 21.7854,-143 15.7854,-137 15.7854,-131 15.7854,-131 15.7854,-119 15.7854,-119 15.7854,-113 21.7854,-107 27.7854,-107 27.7854,-107 68.641,-107 68.641,-107 74.641,-107 80.641,-113 80.641,-119 80.641,-119 80.641,-131 80.641,-131 80.641,-137 74.641,-143 68.641,-143"/>
<text text-anchor="middle" x="48.2132" y="-120.8" font-family="Verdana" font-size="14.00" fill="#000000">Handle</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleReload -->
<g id="node2" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleReload</title>
<g id="a_node2"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleReload | defined in signals.go:17">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M253.6586,-113C253.6586,-113 176.7062,-113 176.7062,-113 170.7062,-113 164.7062,-107 164.7062,-101 164.7062,-101 164.7062,-89 164.7062,-89 164.7062,-83 170.7062,-77 176.7062,-77 176.7062,-77 253.6586,-77 253.6586,-77 259.6586,-77 265.6586,-83 265.6586,-89 265.6586,-89 265.6586,-101 265.6586,-101 265.6586,-107 259.6586,-113 253.6586,-113"/>
<text text-anchor="middle" x="215.1824" y="-90.8" font-family="Verdana" font-size="14.00" fill="#000000">handleReload</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.Handle&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleReload -->
<g id="edge1" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.Handle&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleReload</title>
<g id="a_edge1"><a xlink:title="at unix.go:23: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleReload]">
<path fill="none" stroke="#000000" d="M80.8029,-119.1445C101.7394,-115.3827 129.5814,-110.3803 154.4915,-105.9046"/>
<polygon fill="#000000" stroke="#000000" points="155.3715,-109.3026 164.5949,-104.0892 154.1336,-102.4129 155.3715,-109.3026"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleInterrupted -->
<g id="node3" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleInterrupted</title>
<g id="a_node3"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleInterrupted | defined in signals.go:29">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M264.6954,-174C264.6954,-174 165.6694,-174 165.6694,-174 159.6694,-174 153.6694,-168 153.6694,-162 153.6694,-162 153.6694,-150 153.6694,-150 153.6694,-144 159.6694,-138 165.6694,-138 165.6694,-138 264.6954,-138 264.6954,-138 270.6954,-138 276.6954,-144 276.6954,-150 276.6954,-150 276.6954,-162 276.6954,-162 276.6954,-168 270.6954,-174 264.6954,-174"/>
<text text-anchor="middle" x="215.1824" y="-151.8" font-family="Verdana" font-size="14.00" fill="#000000">handleInterrupted</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.Handle&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleInterrupted -->
<g id="edge2" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.Handle&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleInterrupted</title>
<g id="a_edge2"><a xlink:title="at unix.go:25: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleInterrupted]">
<path fill="none" stroke="#000000" d="M80.8029,-131.0507C98.7443,-134.3818 121.7569,-138.6543 143.6498,-142.719"/>
<polygon fill="#000000" stroke="#000000" points="143.1368,-146.1835 153.6077,-144.5679 144.4146,-139.3011 143.1368,-146.1835"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.init -->
<g id="node4" class="node">
<g id="node1" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.init</title>
<g id="a_node4"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.init | defined in .:0&#10;at .:0: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.init#1]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M63.2132,-52C63.2132,-52 33.2132,-52 33.2132,-52 27.2132,-52 21.2132,-46 21.2132,-40 21.2132,-40 21.2132,-28 21.2132,-28 21.2132,-22 27.2132,-16 33.2132,-16 33.2132,-16 63.2132,-16 63.2132,-16 69.2132,-16 75.2132,-22 75.2132,-28 75.2132,-28 75.2132,-40 75.2132,-40 75.2132,-46 69.2132,-52 63.2132,-52"/>
<text text-anchor="middle" x="48.2132" y="-29.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.init | defined in .:0&#10;at .:0: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.init#1]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M63.2132,-174C63.2132,-174 33.2132,-174 33.2132,-174 27.2132,-174 21.2132,-168 21.2132,-162 21.2132,-162 21.2132,-150 21.2132,-150 21.2132,-144 27.2132,-138 33.2132,-138 33.2132,-138 63.2132,-138 63.2132,-138 69.2132,-138 75.2132,-144 75.2132,-150 75.2132,-150 75.2132,-162 75.2132,-162 75.2132,-168 69.2132,-174 63.2132,-174"/>
<text text-anchor="middle" x="48.2132" y="-151.8" font-family="Verdana" font-size="14.00" fill="#000000">init</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.init#1 -->
<g id="node5" class="node">
<g id="node2" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.init#1</title>
<g id="a_node5"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.init#1 | defined in unix.go:11">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M231.3551,-52C231.3551,-52 199.0097,-52 199.0097,-52 193.0097,-52 187.0097,-46 187.0097,-40 187.0097,-40 187.0097,-28 187.0097,-28 187.0097,-22 193.0097,-16 199.0097,-16 199.0097,-16 231.3551,-16 231.3551,-16 237.3551,-16 243.3551,-22 243.3551,-28 243.3551,-28 243.3551,-40 243.3551,-40 243.3551,-46 237.3551,-52 231.3551,-52"/>
<text text-anchor="middle" x="215.1824" y="-29.8" font-family="Verdana" font-size="14.00" fill="#000000">init#1</text>
<g id="a_node2"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.init#1 | defined in unix.go:11">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M231.3551,-174C231.3551,-174 199.0097,-174 199.0097,-174 193.0097,-174 187.0097,-168 187.0097,-162 187.0097,-162 187.0097,-150 187.0097,-150 187.0097,-144 193.0097,-138 199.0097,-138 199.0097,-138 231.3551,-138 231.3551,-138 237.3551,-138 243.3551,-144 243.3551,-150 243.3551,-150 243.3551,-162 243.3551,-162 243.3551,-168 237.3551,-174 231.3551,-174"/>
<text text-anchor="middle" x="215.1824" y="-151.8" font-family="Verdana" font-size="14.00" fill="#000000">init#1</text>
</a>
</g>
</g>
@ -81,8 +36,53 @@
<g id="edge3" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.init&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.init#1</title>
<g id="a_edge3"><a xlink:title="at .:0: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.init#1]">
<path fill="none" stroke="#000000" d="M75.4113,-34C102.9748,-34 145.8607,-34 176.8609,-34"/>
<polygon fill="#000000" stroke="#000000" points="176.8791,-37.5001 186.879,-34 176.879,-30.5001 176.8791,-37.5001"/>
<path fill="none" stroke="#000000" d="M75.4113,-156C102.9748,-156 145.8607,-156 176.8609,-156"/>
<polygon fill="#000000" stroke="#000000" points="176.8791,-159.5001 186.879,-156 176.879,-152.5001 176.8791,-159.5001"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.Handle -->
<g id="node3" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.Handle</title>
<g id="a_node3"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.Handle | defined in unix.go:15&#10;at unix.go:23: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleReload]&#10;at unix.go:25: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleInterrupted]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M68.641,-83C68.641,-83 27.7854,-83 27.7854,-83 21.7854,-83 15.7854,-77 15.7854,-71 15.7854,-71 15.7854,-59 15.7854,-59 15.7854,-53 21.7854,-47 27.7854,-47 27.7854,-47 68.641,-47 68.641,-47 74.641,-47 80.641,-53 80.641,-59 80.641,-59 80.641,-71 80.641,-71 80.641,-77 74.641,-83 68.641,-83"/>
<text text-anchor="middle" x="48.2132" y="-60.8" font-family="Verdana" font-size="14.00" fill="#000000">Handle</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleReload -->
<g id="node4" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleReload</title>
<g id="a_node4"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleReload | defined in signals.go:17">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M253.6586,-52C253.6586,-52 176.7062,-52 176.7062,-52 170.7062,-52 164.7062,-46 164.7062,-40 164.7062,-40 164.7062,-28 164.7062,-28 164.7062,-22 170.7062,-16 176.7062,-16 176.7062,-16 253.6586,-16 253.6586,-16 259.6586,-16 265.6586,-22 265.6586,-28 265.6586,-28 265.6586,-40 265.6586,-40 265.6586,-46 259.6586,-52 253.6586,-52"/>
<text text-anchor="middle" x="215.1824" y="-29.8" font-family="Verdana" font-size="14.00" fill="#000000">handleReload</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.Handle&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleReload -->
<g id="edge1" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.Handle&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleReload</title>
<g id="a_edge1"><a xlink:title="at unix.go:23: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleReload]">
<path fill="none" stroke="#000000" d="M80.8029,-58.9493C101.7394,-55.0622 129.5814,-49.8929 154.4915,-45.2681"/>
<polygon fill="#000000" stroke="#000000" points="155.4019,-48.6589 164.5949,-43.3922 154.124,-41.7765 155.4019,-48.6589"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleInterrupted -->
<g id="node5" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleInterrupted</title>
<g id="a_node5"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleInterrupted | defined in signals.go:29">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M264.6954,-113C264.6954,-113 165.6694,-113 165.6694,-113 159.6694,-113 153.6694,-107 153.6694,-101 153.6694,-101 153.6694,-89 153.6694,-89 153.6694,-83 159.6694,-77 165.6694,-77 165.6694,-77 264.6954,-77 264.6954,-77 270.6954,-77 276.6954,-83 276.6954,-89 276.6954,-89 276.6954,-101 276.6954,-101 276.6954,-107 270.6954,-113 264.6954,-113"/>
<text text-anchor="middle" x="215.1824" y="-90.8" font-family="Verdana" font-size="14.00" fill="#000000">handleInterrupted</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.Handle&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleInterrupted -->
<g id="edge2" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.Handle&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleInterrupted</title>
<g id="a_edge2"><a xlink:title="at unix.go:25: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/signals.handleInterrupted]">
<path fill="none" stroke="#000000" d="M80.8029,-70.8555C98.7443,-74.0791 121.7569,-78.2139 143.6498,-82.1475"/>
<polygon fill="#000000" stroke="#000000" points="143.1463,-85.613 153.6077,-83.9366 144.3842,-78.7233 143.1463,-85.613"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@ -2,7 +2,7 @@
--
import "github.com/go-i2p/go-i2p/lib/util/time/sntp"
![sntp.svg](sntp)
![sntp.svg](sntp.svg)

View File

@ -4,64 +4,64 @@
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: gocallvis Pages: 1 -->
<svg width="1420pt" height="539pt"
viewBox="0.00 0.00 1420.13 539.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 539)">
<svg width="1420pt" height="548pt"
viewBox="0.00 0.00 1420.13 548.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 548)">
<title>gocallvis</title>
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-539 1420.1336,-539 1420.1336,0 0,0"/>
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-548 1420.1336,-548 1420.1336,0 0,0"/>
<g id="clust1" class="cluster">
<title>cluster_focus</title>
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-531 1412.1336,-531 1412.1336,-8 8,-8"/>
<text text-anchor="middle" x="710.0668" y="-510.8" font-family="Arial" font-size="18.00" fill="#000000">sntp</text>
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-8 8,-540 1412.1336,-540 1412.1336,-8 8,-8"/>
<text text-anchor="middle" x="710.0668" y="-519.8" font-family="Arial" font-size="18.00" fill="#000000">sntp</text>
</g>
<g id="clust4" class="cluster">
<title>cluster_*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones</title>
<g id="a_clust4"><a xlink:title="type: *github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones">
<path fill="#b0c4de" stroke="#000000" stroke-width=".5" d="M1091.3404,-60C1091.3404,-60 1392.1336,-60 1392.1336,-60 1398.1336,-60 1404.1336,-66 1404.1336,-72 1404.1336,-72 1404.1336,-187 1404.1336,-187 1404.1336,-193 1398.1336,-199 1392.1336,-199 1392.1336,-199 1091.3404,-199 1091.3404,-199 1085.3404,-199 1079.3404,-193 1079.3404,-187 1079.3404,-187 1079.3404,-72 1079.3404,-72 1079.3404,-66 1085.3404,-60 1091.3404,-60"/>
<text text-anchor="middle" x="1241.737" y="-68.5" font-family="Arial" font-size="15.00" fill="#222222">(*Zones)</text>
<path fill="#b0c4de" stroke="#000000" stroke-width=".5" d="M1091.3404,-16C1091.3404,-16 1392.1336,-16 1392.1336,-16 1398.1336,-16 1404.1336,-22 1404.1336,-28 1404.1336,-28 1404.1336,-143 1404.1336,-143 1404.1336,-149 1398.1336,-155 1392.1336,-155 1392.1336,-155 1091.3404,-155 1091.3404,-155 1085.3404,-155 1079.3404,-149 1079.3404,-143 1079.3404,-143 1079.3404,-28 1079.3404,-28 1079.3404,-22 1085.3404,-16 1091.3404,-16"/>
<text text-anchor="middle" x="1241.737" y="-24.5" font-family="Arial" font-size="15.00" fill="#222222">(*Zones)</text>
</a>
</g>
</g>
<g id="clust3" class="cluster">
<title>cluster_*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper</title>
<g id="a_clust3"><a xlink:title="type: *github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper">
<path fill="#b0c4de" stroke="#000000" stroke-width=".5" d="M32.6697,-207C32.6697,-207 1163.3285,-207 1163.3285,-207 1169.3285,-207 1175.3285,-213 1175.3285,-219 1175.3285,-219 1175.3285,-395 1175.3285,-395 1175.3285,-401 1169.3285,-407 1163.3285,-407 1163.3285,-407 32.6697,-407 32.6697,-407 26.6697,-407 20.6697,-401 20.6697,-395 20.6697,-395 20.6697,-219 20.6697,-219 20.6697,-213 26.6697,-207 32.6697,-207"/>
<text text-anchor="middle" x="597.9991" y="-215.5" font-family="Arial" font-size="15.00" fill="#222222">(*RouterTimestamper)</text>
<path fill="#b0c4de" stroke="#000000" stroke-width=".5" d="M32.6697,-216C32.6697,-216 1163.3285,-216 1163.3285,-216 1169.3285,-216 1175.3285,-222 1175.3285,-228 1175.3285,-228 1175.3285,-404 1175.3285,-404 1175.3285,-410 1169.3285,-416 1163.3285,-416 1163.3285,-416 32.6697,-416 32.6697,-416 26.6697,-416 20.6697,-410 20.6697,-404 20.6697,-404 20.6697,-228 20.6697,-228 20.6697,-222 26.6697,-216 32.6697,-216"/>
<text text-anchor="middle" x="597.9991" y="-224.5" font-family="Arial" font-size="15.00" fill="#222222">(*RouterTimestamper)</text>
</a>
</g>
</g>
<g id="clust2" class="cluster">
<title>cluster_*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.DefaultNTPClient</title>
<g id="a_clust2"><a xlink:title="type: *github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.DefaultNTPClient">
<path fill="#b0c4de" stroke="#000000" stroke-width=".5" d="M28,-415C28,-415 151.31,-415 151.31,-415 157.31,-415 163.31,-421 163.31,-427 163.31,-427 163.31,-481 163.31,-481 163.31,-487 157.31,-493 151.31,-493 151.31,-493 28,-493 28,-493 22,-493 16,-487 16,-481 16,-481 16,-427 16,-427 16,-421 22,-415 28,-415"/>
<text text-anchor="middle" x="89.655" y="-423.5" font-family="Arial" font-size="15.00" fill="#222222">(*DefaultNTPClient)</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration -->
<g id="node1" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration</title>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration | defined in router_timestamper.go:386">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M1158.2573,-52C1158.2573,-52 1089.4109,-52 1089.4109,-52 1083.4109,-52 1077.4109,-46 1077.4109,-40 1077.4109,-40 1077.4109,-28 1077.4109,-28 1077.4109,-22 1083.4109,-16 1089.4109,-16 1089.4109,-16 1158.2573,-16 1158.2573,-16 1164.2573,-16 1170.2573,-22 1170.2573,-28 1170.2573,-28 1170.2573,-40 1170.2573,-40 1170.2573,-46 1164.2573,-52 1158.2573,-52"/>
<text text-anchor="middle" x="1123.8341" y="-29.8" font-family="Verdana" font-size="14.00" fill="#000000">absDuration</text>
<path fill="#b0c4de" stroke="#000000" stroke-width=".5" d="M28,-424C28,-424 151.31,-424 151.31,-424 157.31,-424 163.31,-430 163.31,-436 163.31,-436 163.31,-490 163.31,-490 163.31,-496 157.31,-502 151.31,-502 151.31,-502 28,-502 28,-502 22,-502 16,-496 16,-490 16,-490 16,-436 16,-436 16,-430 22,-424 28,-424"/>
<text text-anchor="middle" x="89.655" y="-432.5" font-family="Arial" font-size="15.00" fill="#222222">(*DefaultNTPClient)</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.getLocalCountryCode -->
<g id="node2" class="node">
<g id="node1" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.getLocalCountryCode</title>
<g id="a_node2"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.getLocalCountryCode | defined in router_timestamper.go:393">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M1186.2513,-451C1186.2513,-451 1061.4169,-451 1061.4169,-451 1055.4169,-451 1049.4169,-445 1049.4169,-439 1049.4169,-439 1049.4169,-427 1049.4169,-427 1049.4169,-421 1055.4169,-415 1061.4169,-415 1061.4169,-415 1186.2513,-415 1186.2513,-415 1192.2513,-415 1198.2513,-421 1198.2513,-427 1198.2513,-427 1198.2513,-439 1198.2513,-439 1198.2513,-445 1192.2513,-451 1186.2513,-451"/>
<text text-anchor="middle" x="1123.8341" y="-428.8" font-family="Verdana" font-size="14.00" fill="#000000">getLocalCountryCode</text>
<g id="a_node1"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.getLocalCountryCode | defined in router_timestamper.go:393">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M1186.2513,-460C1186.2513,-460 1061.4169,-460 1061.4169,-460 1055.4169,-460 1049.4169,-454 1049.4169,-448 1049.4169,-448 1049.4169,-436 1049.4169,-436 1049.4169,-430 1055.4169,-424 1061.4169,-424 1061.4169,-424 1186.2513,-424 1186.2513,-424 1192.2513,-424 1198.2513,-430 1198.2513,-436 1198.2513,-436 1198.2513,-448 1198.2513,-448 1198.2513,-454 1192.2513,-460 1186.2513,-460"/>
<text text-anchor="middle" x="1123.8341" y="-437.8" font-family="Verdana" font-size="14.00" fill="#000000">getLocalCountryCode</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.checkIPv6Connectivity -->
<g id="node3" class="node">
<g id="node2" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.checkIPv6Connectivity</title>
<g id="a_node3"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.checkIPv6Connectivity | defined in router_timestamper.go:371">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M964.834,-460C964.834,-460 833.0024,-460 833.0024,-460 827.0024,-460 821.0024,-454 821.0024,-448 821.0024,-448 821.0024,-436 821.0024,-436 821.0024,-430 827.0024,-424 833.0024,-424 833.0024,-424 964.834,-424 964.834,-424 970.834,-424 976.834,-430 976.834,-436 976.834,-436 976.834,-448 976.834,-448 976.834,-454 970.834,-460 964.834,-460"/>
<text text-anchor="middle" x="898.9182" y="-437.8" font-family="Verdana" font-size="14.00" fill="#000000">checkIPv6Connectivity</text>
<g id="a_node2"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.checkIPv6Connectivity | defined in router_timestamper.go:371">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M964.834,-469C964.834,-469 833.0024,-469 833.0024,-469 827.0024,-469 821.0024,-463 821.0024,-457 821.0024,-457 821.0024,-445 821.0024,-445 821.0024,-439 827.0024,-433 833.0024,-433 833.0024,-433 964.834,-433 964.834,-433 970.834,-433 976.834,-439 976.834,-445 976.834,-445 976.834,-457 976.834,-457 976.834,-463 970.834,-469 964.834,-469"/>
<text text-anchor="middle" x="898.9182" y="-446.8" font-family="Verdana" font-size="14.00" fill="#000000">checkIPv6Connectivity</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration -->
<g id="node3" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration</title>
<g id="a_node3"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration | defined in router_timestamper.go:386">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M1158.2573,-208C1158.2573,-208 1089.4109,-208 1089.4109,-208 1083.4109,-208 1077.4109,-202 1077.4109,-196 1077.4109,-196 1077.4109,-184 1077.4109,-184 1077.4109,-178 1083.4109,-172 1089.4109,-172 1089.4109,-172 1158.2573,-172 1158.2573,-172 1164.2573,-172 1170.2573,-178 1170.2573,-184 1170.2573,-184 1170.2573,-196 1170.2573,-196 1170.2573,-202 1164.2573,-208 1158.2573,-208"/>
<text text-anchor="middle" x="1123.8341" y="-185.8" font-family="Verdana" font-size="14.00" fill="#000000">absDuration</text>
</a>
</g>
</g>
@ -69,72 +69,72 @@
<g id="node4" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewZones</title>
<g id="a_node4"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewZones | defined in zones.go:19&#10;at zones.go:24: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).initialize]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M929.0586,-157C929.0586,-157 868.7778,-157 868.7778,-157 862.7778,-157 856.7778,-151 856.7778,-145 856.7778,-145 856.7778,-133 856.7778,-133 856.7778,-127 862.7778,-121 868.7778,-121 868.7778,-121 929.0586,-121 929.0586,-121 935.0586,-121 941.0586,-127 941.0586,-133 941.0586,-133 941.0586,-145 941.0586,-145 941.0586,-151 935.0586,-157 929.0586,-157"/>
<text text-anchor="middle" x="898.9182" y="-134.8" font-family="Verdana" font-size="14.00" fill="#000000">NewZones</text>
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M929.0586,-121C929.0586,-121 868.7778,-121 868.7778,-121 862.7778,-121 856.7778,-115 856.7778,-109 856.7778,-109 856.7778,-97 856.7778,-97 856.7778,-91 862.7778,-85 868.7778,-85 868.7778,-85 929.0586,-85 929.0586,-85 935.0586,-85 941.0586,-91 941.0586,-97 941.0586,-97 941.0586,-109 941.0586,-109 941.0586,-115 935.0586,-121 929.0586,-121"/>
<text text-anchor="middle" x="898.9182" y="-98.8" font-family="Verdana" font-size="14.00" fill="#000000">NewZones</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).initialize -->
<g id="node20" class="node">
<g id="node19" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).initialize</title>
<g id="a_node20"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).initialize | defined in zones.go:36&#10;at zones.go:51: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).readContinentFile]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M1148.3215,-130C1148.3215,-130 1099.3467,-130 1099.3467,-130 1093.3467,-130 1087.3467,-124 1087.3467,-118 1087.3467,-118 1087.3467,-106 1087.3467,-106 1087.3467,-100 1093.3467,-94 1099.3467,-94 1099.3467,-94 1148.3215,-94 1148.3215,-94 1154.3215,-94 1160.3215,-100 1160.3215,-106 1160.3215,-106 1160.3215,-118 1160.3215,-118 1160.3215,-124 1154.3215,-130 1148.3215,-130"/>
<text text-anchor="middle" x="1123.8341" y="-107.8" font-family="Verdana" font-size="14.00" fill="#000000">initialize</text>
<g id="a_node19"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).initialize | defined in zones.go:36&#10;at zones.go:51: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).readContinentFile]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M1148.3215,-86C1148.3215,-86 1099.3467,-86 1099.3467,-86 1093.3467,-86 1087.3467,-80 1087.3467,-74 1087.3467,-74 1087.3467,-62 1087.3467,-62 1087.3467,-56 1093.3467,-50 1099.3467,-50 1099.3467,-50 1148.3215,-50 1148.3215,-50 1154.3215,-50 1160.3215,-56 1160.3215,-62 1160.3215,-62 1160.3215,-74 1160.3215,-74 1160.3215,-80 1154.3215,-86 1148.3215,-86"/>
<text text-anchor="middle" x="1123.8341" y="-63.8" font-family="Verdana" font-size="14.00" fill="#000000">initialize</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewZones&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).initialize -->
<g id="edge15" class="edge">
<g id="edge19" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewZones&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).initialize</title>
<g id="a_edge15"><a xlink:title="at zones.go:24: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).initialize]">
<path fill="none" stroke="#000000" d="M941.2232,-133.9215C979.9704,-129.2701 1037.2175,-122.3979 1077.2557,-117.5915"/>
<polygon fill="#000000" stroke="#000000" points="1077.7853,-121.0531 1087.2968,-116.3861 1076.9509,-114.103 1077.7853,-121.0531"/>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewRouterTimestamper -->
<g id="node5" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewRouterTimestamper</title>
<g id="a_node5"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewRouterTimestamper | defined in router_timestamper.go:55&#10;at router_timestamper.go:65: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig]&#10;at router_timestamper.go:61: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewZones]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M736.4082,-164C736.4082,-164 597.6188,-164 597.6188,-164 591.6188,-164 585.6188,-158 585.6188,-152 585.6188,-152 585.6188,-140 585.6188,-140 585.6188,-134 591.6188,-128 597.6188,-128 597.6188,-128 736.4082,-128 736.4082,-128 742.4082,-128 748.4082,-134 748.4082,-140 748.4082,-140 748.4082,-152 748.4082,-152 748.4082,-158 742.4082,-164 736.4082,-164"/>
<text text-anchor="middle" x="667.0135" y="-141.8" font-family="Verdana" font-size="14.00" fill="#000000">NewRouterTimestamper</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewRouterTimestamper&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewZones -->
<g id="edge16" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewRouterTimestamper&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewZones</title>
<g id="a_edge16"><a xlink:title="at router_timestamper.go:61: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewZones]">
<path fill="none" stroke="#000000" d="M748.4483,-143.5419C780.9942,-142.5595 817.5321,-141.4566 846.4526,-140.5837"/>
<polygon fill="#000000" stroke="#000000" points="846.8515,-144.0733 856.7413,-140.2731 846.6402,-137.0765 846.8515,-144.0733"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig -->
<g id="node10" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig</title>
<g id="a_node10"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig | defined in router_timestamper.go:331&#10;at router_timestamper.go:348: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.getLocalCountryCode]&#10;at router_timestamper.go:357: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).GetZone]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M937.126,-338C937.126,-338 860.7104,-338 860.7104,-338 854.7104,-338 848.7104,-332 848.7104,-326 848.7104,-326 848.7104,-314 848.7104,-314 848.7104,-308 854.7104,-302 860.7104,-302 860.7104,-302 937.126,-302 937.126,-302 943.126,-302 949.126,-308 949.126,-314 949.126,-314 949.126,-326 949.126,-326 949.126,-332 943.126,-338 937.126,-338"/>
<text text-anchor="middle" x="898.9182" y="-315.8" font-family="Verdana" font-size="14.00" fill="#000000">updateConfig</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewRouterTimestamper&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig -->
<g id="edge10" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewRouterTimestamper&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig</title>
<g id="a_edge10"><a xlink:title="at router_timestamper.go:65: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig]">
<path fill="none" stroke="#000000" d="M698.2421,-164.1692C714.0193,-174.0679 732.9914,-187.1144 748.2106,-201 786.0037,-235.4814 779.7563,-260.0195 821.2106,-290 826.7217,-293.9857 832.8306,-297.5195 839.1317,-300.6329"/>
<polygon fill="#000000" stroke="#000000" points="837.904,-303.9201 848.4536,-304.8973 840.8159,-297.5545 837.904,-303.9201"/>
<g id="a_edge19"><a xlink:title="at zones.go:24: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).initialize]">
<path fill="none" stroke="#000000" d="M941.2232,-96.4168C979.9704,-90.3872 1037.2175,-81.4787 1077.2557,-75.2482"/>
<polygon fill="#000000" stroke="#000000" points="1077.9539,-78.6818 1087.2968,-73.6857 1076.8775,-71.765 1077.9539,-78.6818"/>
</a>
</g>
</g>
<!-- github.com/beevik/ntp.QueryWithOptions -->
<g id="node6" class="node">
<g id="node5" class="node">
<title>github.com/beevik/ntp.QueryWithOptions</title>
<g id="a_node6"><a xlink:title="github.com/beevik/ntp.QueryWithOptions | defined in ntp.go:432">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M355.7754,-485C355.7754,-485 248.1546,-485 248.1546,-485 242.1546,-485 236.1546,-479 236.1546,-473 236.1546,-473 236.1546,-461 236.1546,-461 236.1546,-455 242.1546,-449 248.1546,-449 248.1546,-449 355.7754,-449 355.7754,-449 361.7754,-449 367.7754,-455 367.7754,-461 367.7754,-461 367.7754,-473 367.7754,-473 367.7754,-479 361.7754,-485 355.7754,-485"/>
<text text-anchor="middle" x="301.965" y="-471.2" font-family="Verdana" font-size="14.00" fill="#000000">ntp</text>
<text text-anchor="middle" x="301.965" y="-454.4" font-family="Verdana" font-size="14.00" fill="#000000">QueryWithOptions</text>
<g id="a_node5"><a xlink:title="github.com/beevik/ntp.QueryWithOptions | defined in ntp.go:432">
<path fill="#ffe4b5" stroke="#000000" stroke-width="1.5" d="M355.7754,-494C355.7754,-494 248.1546,-494 248.1546,-494 242.1546,-494 236.1546,-488 236.1546,-482 236.1546,-482 236.1546,-470 236.1546,-470 236.1546,-464 242.1546,-458 248.1546,-458 248.1546,-458 355.7754,-458 355.7754,-458 361.7754,-458 367.7754,-464 367.7754,-470 367.7754,-470 367.7754,-482 367.7754,-482 367.7754,-488 361.7754,-494 355.7754,-494"/>
<text text-anchor="middle" x="301.965" y="-480.2" font-family="Verdana" font-size="14.00" fill="#000000">ntp</text>
<text text-anchor="middle" x="301.965" y="-463.4" font-family="Verdana" font-size="14.00" fill="#000000">QueryWithOptions</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewRouterTimestamper -->
<g id="node6" class="node">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewRouterTimestamper</title>
<g id="a_node6"><a xlink:title="github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewRouterTimestamper | defined in router_timestamper.go:55&#10;at router_timestamper.go:65: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig]&#10;at router_timestamper.go:61: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewZones]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M736.4082,-138C736.4082,-138 597.6188,-138 597.6188,-138 591.6188,-138 585.6188,-132 585.6188,-126 585.6188,-126 585.6188,-114 585.6188,-114 585.6188,-108 591.6188,-102 597.6188,-102 597.6188,-102 736.4082,-102 736.4082,-102 742.4082,-102 748.4082,-108 748.4082,-114 748.4082,-114 748.4082,-126 748.4082,-126 748.4082,-132 742.4082,-138 736.4082,-138"/>
<text text-anchor="middle" x="667.0135" y="-115.8" font-family="Verdana" font-size="14.00" fill="#000000">NewRouterTimestamper</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewRouterTimestamper&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewZones -->
<g id="edge17" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewRouterTimestamper&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewZones</title>
<g id="a_edge17"><a xlink:title="at router_timestamper.go:61: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewZones]">
<path fill="none" stroke="#000000" d="M748.4483,-114.0303C780.9942,-111.6445 817.5321,-108.9661 846.4526,-106.846"/>
<polygon fill="#000000" stroke="#000000" points="847.024,-110.3136 856.7413,-106.0918 846.5122,-103.3324 847.024,-110.3136"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig -->
<g id="node8" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig</title>
<g id="a_node8"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig | defined in router_timestamper.go:331&#10;at router_timestamper.go:348: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.getLocalCountryCode]&#10;at router_timestamper.go:357: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).GetZone]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M937.126,-286C937.126,-286 860.7104,-286 860.7104,-286 854.7104,-286 848.7104,-280 848.7104,-274 848.7104,-274 848.7104,-262 848.7104,-262 848.7104,-256 854.7104,-250 860.7104,-250 860.7104,-250 937.126,-250 937.126,-250 943.126,-250 949.126,-256 949.126,-262 949.126,-262 949.126,-274 949.126,-274 949.126,-280 943.126,-286 937.126,-286"/>
<text text-anchor="middle" x="898.9182" y="-263.8" font-family="Verdana" font-size="14.00" fill="#000000">updateConfig</text>
</a>
</g>
</g>
<!-- github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewRouterTimestamper&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig -->
<g id="edge6" class="edge">
<title>github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.NewRouterTimestamper&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig</title>
<g id="a_edge6"><a xlink:title="at router_timestamper.go:65: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig]">
<path fill="none" stroke="#000000" d="M684.2314,-138.2078C711.018,-165.5021 765.4158,-216.9173 821.2106,-246 826.759,-248.8921 832.7343,-251.4444 838.8191,-253.6875"/>
<polygon fill="#000000" stroke="#000000" points="837.8309,-257.0483 848.4253,-256.9623 840.0896,-250.4227 837.8309,-257.0483"/>
</a>
</g>
</g>
@ -142,116 +142,89 @@
<g id="node7" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.DefaultNTPClient).QueryWithOptions</title>
<g id="a_node7"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.DefaultNTPClient).QueryWithOptions | defined in router_timestamper.go:20&#10;at router_timestamper.go:21: calling [github.com/beevik/ntp.QueryWithOptions]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M143.4654,-485C143.4654,-485 35.8446,-485 35.8446,-485 29.8446,-485 23.8446,-479 23.8446,-473 23.8446,-473 23.8446,-461 23.8446,-461 23.8446,-455 29.8446,-449 35.8446,-449 35.8446,-449 143.4654,-449 143.4654,-449 149.4654,-449 155.4654,-455 155.4654,-461 155.4654,-461 155.4654,-473 155.4654,-473 155.4654,-479 149.4654,-485 143.4654,-485"/>
<text text-anchor="middle" x="89.655" y="-462.8" font-family="Verdana" font-size="14.00" fill="#000000">QueryWithOptions</text>
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M143.4654,-494C143.4654,-494 35.8446,-494 35.8446,-494 29.8446,-494 23.8446,-488 23.8446,-482 23.8446,-482 23.8446,-470 23.8446,-470 23.8446,-464 29.8446,-458 35.8446,-458 35.8446,-458 143.4654,-458 143.4654,-458 149.4654,-458 155.4654,-464 155.4654,-470 155.4654,-470 155.4654,-482 155.4654,-482 155.4654,-488 149.4654,-494 143.4654,-494"/>
<text text-anchor="middle" x="89.655" y="-471.8" font-family="Verdana" font-size="14.00" fill="#000000">QueryWithOptions</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.DefaultNTPClient).QueryWithOptions&#45;&gt;github.com/beevik/ntp.QueryWithOptions -->
<g id="edge6" class="edge">
<g id="edge4" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.DefaultNTPClient).QueryWithOptions&#45;&gt;github.com/beevik/ntp.QueryWithOptions</title>
<g id="a_edge6"><a xlink:title="at router_timestamper.go:21: calling [github.com/beevik/ntp.QueryWithOptions]">
<path fill="none" stroke="#8b4513" d="M155.3772,-467C177.7612,-467 202.965,-467 226.0794,-467"/>
<polygon fill="#8b4513" stroke="#8b4513" points="226.1878,-470.5001 236.1878,-467 226.1878,-463.5001 226.1878,-470.5001"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime -->
<g id="node8" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime</title>
<g id="a_node8"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime | defined in router_timestamper.go:276&#10;at router_timestamper.go:319: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).stampTime]&#10;at router_timestamper.go:303: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration]&#10;at router_timestamper.go:312: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration]&#10;at router_timestamper.go:304: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M929.8429,-277C929.8429,-277 867.9935,-277 867.9935,-277 861.9935,-277 855.9935,-271 855.9935,-265 855.9935,-265 855.9935,-253 855.9935,-253 855.9935,-247 861.9935,-241 867.9935,-241 867.9935,-241 929.8429,-241 929.8429,-241 935.8429,-241 941.8429,-247 941.8429,-253 941.8429,-253 941.8429,-265 941.8429,-265 941.8429,-271 935.8429,-277 929.8429,-277"/>
<text text-anchor="middle" x="898.9182" y="-254.8" font-family="Verdana" font-size="14.00" fill="#000000">queryTime</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration -->
<g id="edge17" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration</title>
<g id="a_edge17"><a xlink:title="at router_timestamper.go:303: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration]&#10;at router_timestamper.go:312: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration]&#10;at router_timestamper.go:304: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration]">
<path fill="none" stroke="#000000" d="M941.9142,-254.0925C954.2924,-250.8834 967.0278,-245.6182 976.6258,-237 1041.1664,-179.0478 985.4433,-114.3486 1049.6258,-56 1054.8365,-51.2629 1061.0237,-47.5433 1067.5692,-44.6232"/>
<polygon fill="#000000" stroke="#000000" points="1069.2496,-47.7281 1077.3435,-40.8915 1066.7528,-41.1885 1069.2496,-47.7281"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).stampTime -->
<g id="node9" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).stampTime</title>
<g id="a_node9"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).stampTime | defined in router_timestamper.go:323">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M1155.3229,-277C1155.3229,-277 1092.3453,-277 1092.3453,-277 1086.3453,-277 1080.3453,-271 1080.3453,-265 1080.3453,-265 1080.3453,-253 1080.3453,-253 1080.3453,-247 1086.3453,-241 1092.3453,-241 1092.3453,-241 1155.3229,-241 1155.3229,-241 1161.3229,-241 1167.3229,-247 1167.3229,-253 1167.3229,-253 1167.3229,-265 1167.3229,-265 1167.3229,-271 1161.3229,-277 1155.3229,-277"/>
<text text-anchor="middle" x="1123.8341" y="-254.8" font-family="Verdana" font-size="14.00" fill="#000000">stampTime</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).stampTime -->
<g id="edge13" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).stampTime</title>
<g id="a_edge13"><a xlink:title="at router_timestamper.go:319: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).stampTime]">
<path fill="none" stroke="#000000" d="M941.7526,-259C978.1397,-259 1030.5595,-259 1069.8194,-259"/>
<polygon fill="#000000" stroke="#000000" points="1070.0083,-262.5001 1080.0083,-259 1070.0083,-255.5001 1070.0083,-262.5001"/>
<g id="a_edge4"><a xlink:title="at router_timestamper.go:21: calling [github.com/beevik/ntp.QueryWithOptions]">
<path fill="none" stroke="#8b4513" d="M155.3772,-476C177.7612,-476 202.965,-476 226.0794,-476"/>
<polygon fill="#8b4513" stroke="#8b4513" points="226.1878,-479.5001 236.1878,-476 226.1878,-472.5001 226.1878,-479.5001"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.getLocalCountryCode -->
<g id="edge1" class="edge">
<g id="edge7" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.getLocalCountryCode</title>
<g id="a_edge1"><a xlink:title="at router_timestamper.go:348: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.getLocalCountryCode]">
<path fill="none" stroke="#000000" d="M949.3331,-337.4698C958.6543,-341.432 968.1229,-345.9748 976.6258,-351 1010.2386,-370.8651 1012.3876,-388.6308 1048.8341,-410.0173"/>
<polygon fill="#000000" stroke="#000000" points="1047.2761,-413.1553 1057.7205,-414.9343 1050.6652,-407.0303 1047.2761,-413.1553"/>
<g id="a_edge7"><a xlink:title="at router_timestamper.go:348: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.getLocalCountryCode]">
<path fill="none" stroke="#000000" d="M949.2861,-282.535C959.0176,-286.82 968.6526,-292.2328 976.6258,-299 1022.0787,-337.5781 1002.2441,-377.3308 1047.4553,-417.4837"/>
<polygon fill="#000000" stroke="#000000" points="1045.3444,-420.2793 1055.2899,-423.9314 1049.7925,-414.8743 1045.3444,-420.2793"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).GetZone -->
<g id="node19" class="node">
<g id="node21" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).GetZone</title>
<g id="a_node19"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).GetZone | defined in zones.go:28">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M1148.3131,-191C1148.3131,-191 1099.3551,-191 1099.3551,-191 1093.3551,-191 1087.3551,-185 1087.3551,-179 1087.3551,-179 1087.3551,-167 1087.3551,-167 1087.3551,-161 1093.3551,-155 1099.3551,-155 1099.3551,-155 1148.3131,-155 1148.3131,-155 1154.3131,-155 1160.3131,-161 1160.3131,-167 1160.3131,-167 1160.3131,-179 1160.3131,-179 1160.3131,-185 1154.3131,-191 1148.3131,-191"/>
<text text-anchor="middle" x="1123.8341" y="-168.8" font-family="Verdana" font-size="14.00" fill="#000000">GetZone</text>
<g id="a_node21"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).GetZone | defined in zones.go:28">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M1148.3131,-147C1148.3131,-147 1099.3551,-147 1099.3551,-147 1093.3551,-147 1087.3551,-141 1087.3551,-135 1087.3551,-135 1087.3551,-123 1087.3551,-123 1087.3551,-117 1093.3551,-111 1099.3551,-111 1099.3551,-111 1148.3131,-111 1148.3131,-111 1154.3131,-111 1160.3131,-117 1160.3131,-123 1160.3131,-123 1160.3131,-135 1160.3131,-135 1160.3131,-141 1154.3131,-147 1148.3131,-147"/>
<text text-anchor="middle" x="1123.8341" y="-124.8" font-family="Verdana" font-size="14.00" fill="#000000">GetZone</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).GetZone -->
<g id="edge7" class="edge">
<g id="edge8" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).GetZone</title>
<g id="a_edge7"><a xlink:title="at router_timestamper.go:357: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).GetZone]">
<path fill="none" stroke="#000000" d="M949.1949,-307.3083C959.1561,-303.0443 968.9059,-297.4111 976.6258,-290 1005.6323,-262.1538 982.6395,-233.7883 1012.6258,-207 1030.3677,-191.1503 1055.3391,-182.688 1077.1252,-178.1705"/>
<polygon fill="#000000" stroke="#000000" points="1077.9988,-181.5684 1087.1951,-176.3073 1076.7252,-174.6852 1077.9988,-181.5684"/>
<g id="a_edge8"><a xlink:title="at router_timestamper.go:357: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).GetZone]">
<path fill="none" stroke="#000000" d="M949.0305,-264.8332C971.0415,-261.1253 995.8619,-253.4902 1013.6258,-238 1045.1651,-210.4976 1018.5362,-179.0098 1049.6258,-151 1057.338,-144.0518 1067.153,-139.2936 1077.0995,-136.0365"/>
<polygon fill="#000000" stroke="#000000" points="1078.334,-139.3254 1087.0168,-133.2543 1076.4431,-132.5856 1078.334,-139.3254"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery -->
<g id="node11" class="node">
<g id="node9" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery</title>
<g id="a_node11"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery | defined in router_timestamper.go:129&#10;at router_timestamper.go:141: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime]&#10;at router_timestamper.go:150: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime]&#10;at router_timestamper.go:149: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).secureRandBool]&#10;at router_timestamper.go:130: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig]&#10;at router_timestamper.go:131: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.checkIPv6Connectivity]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M721.6312,-364C721.6312,-364 612.3958,-364 612.3958,-364 606.3958,-364 600.3958,-358 600.3958,-352 600.3958,-352 600.3958,-340 600.3958,-340 600.3958,-334 606.3958,-328 612.3958,-328 612.3958,-328 721.6312,-328 721.6312,-328 727.6312,-328 733.6312,-334 733.6312,-340 733.6312,-340 733.6312,-352 733.6312,-352 733.6312,-358 727.6312,-364 721.6312,-364"/>
<text text-anchor="middle" x="667.0135" y="-341.8" font-family="Verdana" font-size="14.00" fill="#000000">performTimeQuery</text>
<g id="a_node9"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery | defined in router_timestamper.go:129&#10;at router_timestamper.go:141: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime]&#10;at router_timestamper.go:150: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime]&#10;at router_timestamper.go:130: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig]&#10;at router_timestamper.go:149: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).secureRandBool]&#10;at router_timestamper.go:131: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.checkIPv6Connectivity]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M721.6312,-362C721.6312,-362 612.3958,-362 612.3958,-362 606.3958,-362 600.3958,-356 600.3958,-350 600.3958,-350 600.3958,-338 600.3958,-338 600.3958,-332 606.3958,-326 612.3958,-326 612.3958,-326 721.6312,-326 721.6312,-326 727.6312,-326 733.6312,-332 733.6312,-338 733.6312,-338 733.6312,-350 733.6312,-350 733.6312,-356 727.6312,-362 721.6312,-362"/>
<text text-anchor="middle" x="667.0135" y="-339.8" font-family="Verdana" font-size="14.00" fill="#000000">performTimeQuery</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.checkIPv6Connectivity -->
<g id="edge18" class="edge">
<g id="edge14" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.checkIPv6Connectivity</title>
<g id="a_edge18"><a xlink:title="at router_timestamper.go:131: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.checkIPv6Connectivity]">
<path fill="none" stroke="#000000" d="M707.0278,-364.0762C738.0115,-377.9049 782.098,-397.2171 821.2106,-413 827.1696,-415.4046 833.4124,-417.8521 839.6589,-420.2544"/>
<polygon fill="#000000" stroke="#000000" points="838.8467,-423.6904 849.4376,-423.9798 841.3388,-417.149 838.8467,-423.6904"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime -->
<g id="edge8" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime</title>
<g id="a_edge8"><a xlink:title="at router_timestamper.go:141: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime]&#10;at router_timestamper.go:150: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime]">
<path fill="none" stroke="#000000" d="M733.7716,-328.905C738.6888,-327.3431 743.5464,-325.7038 748.2106,-324 781.8287,-311.7195 788.3537,-304.1921 821.2106,-290 829.3486,-286.4849 838.0229,-282.8839 846.5153,-279.4378"/>
<polygon fill="#000000" stroke="#000000" points="848.0177,-282.606 855.988,-275.6256 845.4043,-276.1122 848.0177,-282.606"/>
<g id="a_edge14"><a xlink:title="at router_timestamper.go:131: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.checkIPv6Connectivity]">
<path fill="none" stroke="#000000" d="M700.1887,-362.133C731.0725,-378.6876 778.615,-403.3472 821.2106,-422 826.8372,-424.4639 832.7462,-426.9119 838.6872,-429.2808"/>
<polygon fill="#000000" stroke="#000000" points="837.4258,-432.5455 848.0137,-432.9293 839.976,-426.0266 837.4258,-432.5455"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig -->
<g id="edge14" class="edge">
<g id="edge9" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig</title>
<g id="a_edge14"><a xlink:title="at router_timestamper.go:130: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig]">
<path fill="none" stroke="#000000" d="M733.7788,-338.5146C766.8616,-334.8055 806.5018,-330.3613 838.6518,-326.7568"/>
<polygon fill="#000000" stroke="#000000" points="839.2614,-330.2104 848.8092,-325.618 838.4814,-323.254 839.2614,-330.2104"/>
<g id="a_edge9"><a xlink:title="at router_timestamper.go:130: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).updateConfig]">
<path fill="none" stroke="#000000" d="M734.0434,-326.2901C738.8505,-324.8816 743.6124,-323.4442 748.2106,-322 779.4019,-312.2034 813.7485,-300.0084 841.7651,-289.6876"/>
<polygon fill="#000000" stroke="#000000" points="843.2327,-292.8765 851.3954,-286.1221 840.8022,-286.3119 843.2327,-292.8765"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime -->
<g id="node10" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime</title>
<g id="a_node10"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime | defined in router_timestamper.go:276&#10;at router_timestamper.go:319: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).stampTime]&#10;at router_timestamper.go:303: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration]&#10;at router_timestamper.go:312: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration]&#10;at router_timestamper.go:304: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M929.8429,-347C929.8429,-347 867.9935,-347 867.9935,-347 861.9935,-347 855.9935,-341 855.9935,-335 855.9935,-335 855.9935,-323 855.9935,-323 855.9935,-317 861.9935,-311 867.9935,-311 867.9935,-311 929.8429,-311 929.8429,-311 935.8429,-311 941.8429,-317 941.8429,-323 941.8429,-323 941.8429,-335 941.8429,-335 941.8429,-341 935.8429,-347 929.8429,-347"/>
<text text-anchor="middle" x="898.9182" y="-324.8" font-family="Verdana" font-size="14.00" fill="#000000">queryTime</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime -->
<g id="edge2" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime</title>
<g id="a_edge2"><a xlink:title="at router_timestamper.go:141: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime]&#10;at router_timestamper.go:150: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime]">
<path fill="none" stroke="#000000" d="M733.7788,-339.6815C769.4301,-337.3755 812.6965,-334.577 845.998,-332.423"/>
<polygon fill="#000000" stroke="#000000" points="846.2404,-335.9147 855.9936,-331.7764 845.7885,-328.9293 846.2404,-335.9147"/>
</a>
</g>
</g>
@ -259,44 +232,53 @@
<g id="node12" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).secureRandBool</title>
<g id="a_node12"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).secureRandBool | defined in router_timestamper.go:125">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M944.9466,-399C944.9466,-399 852.8898,-399 852.8898,-399 846.8898,-399 840.8898,-393 840.8898,-387 840.8898,-387 840.8898,-375 840.8898,-375 840.8898,-369 846.8898,-363 852.8898,-363 852.8898,-363 944.9466,-363 944.9466,-363 950.9466,-363 956.9466,-369 956.9466,-375 956.9466,-375 956.9466,-387 956.9466,-387 956.9466,-393 950.9466,-399 944.9466,-399"/>
<text text-anchor="middle" x="898.9182" y="-376.8" font-family="Verdana" font-size="14.00" fill="#000000">secureRandBool</text>
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M944.9466,-408C944.9466,-408 852.8898,-408 852.8898,-408 846.8898,-408 840.8898,-402 840.8898,-396 840.8898,-396 840.8898,-384 840.8898,-384 840.8898,-378 846.8898,-372 852.8898,-372 852.8898,-372 944.9466,-372 944.9466,-372 950.9466,-372 956.9466,-378 956.9466,-384 956.9466,-384 956.9466,-396 956.9466,-396 956.9466,-402 950.9466,-408 944.9466,-408"/>
<text text-anchor="middle" x="898.9182" y="-385.8" font-family="Verdana" font-size="14.00" fill="#000000">secureRandBool</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).secureRandBool -->
<g id="edge9" class="edge">
<g id="edge10" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).secureRandBool</title>
<g id="a_edge9"><a xlink:title="at router_timestamper.go:149: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).secureRandBool]">
<path fill="none" stroke="#000000" d="M733.7788,-356.0765C764.1938,-360.6668 800.1513,-366.0937 830.7354,-370.7096"/>
<polygon fill="#000000" stroke="#000000" points="830.4753,-374.2099 840.8856,-372.2415 831.5199,-367.2883 830.4753,-374.2099"/>
<g id="a_edge10"><a xlink:title="at router_timestamper.go:149: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).secureRandBool]">
<path fill="none" stroke="#000000" d="M733.7788,-357.2434C764.1938,-363.2764 800.1513,-370.4089 830.7354,-376.4754"/>
<polygon fill="#000000" stroke="#000000" points="830.3957,-379.9762 840.8856,-378.4888 831.7577,-373.11 830.3957,-379.9762"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).run -->
<g id="node13" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).run</title>
<g id="a_node13"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).run | defined in router_timestamper.go:215&#10;at router_timestamper.go:218: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M491.7182,-399C491.7182,-399 461.7182,-399 461.7182,-399 455.7182,-399 449.7182,-393 449.7182,-387 449.7182,-387 449.7182,-375 449.7182,-375 449.7182,-369 455.7182,-363 461.7182,-363 461.7182,-363 491.7182,-363 491.7182,-363 497.7182,-363 503.7182,-369 503.7182,-375 503.7182,-375 503.7182,-387 503.7182,-387 503.7182,-393 497.7182,-399 491.7182,-399"/>
<text text-anchor="middle" x="476.7182" y="-376.8" font-family="Verdana" font-size="14.00" fill="#000000">run</text>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration -->
<g id="edge18" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration</title>
<g id="a_edge18"><a xlink:title="at router_timestamper.go:303: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration]&#10;at router_timestamper.go:312: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration]&#10;at router_timestamper.go:304: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration]">
<path fill="none" stroke="#000000" d="M942.0155,-316.7584C953.8548,-312.2574 966.2725,-306.4 976.6258,-299 1017.6903,-269.6493 1007.4174,-239.6803 1049.6258,-212 1055.2126,-208.3362 1061.4284,-205.2657 1067.8181,-202.6962"/>
<polygon fill="#000000" stroke="#000000" points="1069.0411,-205.9758 1077.2513,-199.2794 1066.6571,-199.3943 1069.0411,-205.9758"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).run&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery -->
<g id="edge2" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).run&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery</title>
<g id="a_edge2"><a xlink:title="at router_timestamper.go:218: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery]">
<path fill="none" stroke="#000000" d="M503.9829,-375.9854C526.512,-371.8417 559.6361,-365.7494 590.1523,-360.1367"/>
<polygon fill="#000000" stroke="#000000" points="591.1804,-363.5064 600.3823,-358.2551 589.9141,-356.6218 591.1804,-363.5064"/>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).stampTime -->
<g id="node11" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).stampTime</title>
<g id="a_node11"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).stampTime | defined in router_timestamper.go:323">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M1155.3229,-347C1155.3229,-347 1092.3453,-347 1092.3453,-347 1086.3453,-347 1080.3453,-341 1080.3453,-335 1080.3453,-335 1080.3453,-323 1080.3453,-323 1080.3453,-317 1086.3453,-311 1092.3453,-311 1092.3453,-311 1155.3229,-311 1155.3229,-311 1161.3229,-311 1167.3229,-317 1167.3229,-323 1167.3229,-323 1167.3229,-335 1167.3229,-335 1167.3229,-341 1161.3229,-347 1155.3229,-347"/>
<text text-anchor="middle" x="1123.8341" y="-324.8" font-family="Verdana" font-size="14.00" fill="#000000">stampTime</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).stampTime -->
<g id="edge1" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).queryTime&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).stampTime</title>
<g id="a_edge1"><a xlink:title="at router_timestamper.go:319: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).stampTime]">
<path fill="none" stroke="#000000" d="M941.7526,-329C978.1397,-329 1030.5595,-329 1069.8194,-329"/>
<polygon fill="#000000" stroke="#000000" points="1070.0083,-332.5001 1080.0083,-329 1070.0083,-325.5001 1070.0083,-332.5001"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).runOnce -->
<g id="node14" class="node">
<g id="node13" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).runOnce</title>
<g id="a_node14"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).runOnce | defined in router_timestamper.go:272&#10;at router_timestamper.go:273: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M500.9149,-338C500.9149,-338 452.5215,-338 452.5215,-338 446.5215,-338 440.5215,-332 440.5215,-326 440.5215,-326 440.5215,-314 440.5215,-314 440.5215,-308 446.5215,-302 452.5215,-302 452.5215,-302 500.9149,-302 500.9149,-302 506.9149,-302 512.9149,-308 512.9149,-314 512.9149,-314 512.9149,-326 512.9149,-326 512.9149,-332 506.9149,-338 500.9149,-338"/>
<text text-anchor="middle" x="476.7182" y="-315.8" font-family="Verdana" font-size="14.00" fill="#000000">runOnce</text>
<g id="a_node13"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).runOnce | defined in router_timestamper.go:272&#10;at router_timestamper.go:273: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M500.9149,-386C500.9149,-386 452.5215,-386 452.5215,-386 446.5215,-386 440.5215,-380 440.5215,-374 440.5215,-374 440.5215,-362 440.5215,-362 440.5215,-356 446.5215,-350 452.5215,-350 452.5215,-350 500.9149,-350 500.9149,-350 506.9149,-350 512.9149,-356 512.9149,-362 512.9149,-362 512.9149,-374 512.9149,-374 512.9149,-380 506.9149,-386 500.9149,-386"/>
<text text-anchor="middle" x="476.7182" y="-363.8" font-family="Verdana" font-size="14.00" fill="#000000">runOnce</text>
</a>
</g>
</g>
@ -304,17 +286,17 @@
<g id="edge3" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).runOnce&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery</title>
<g id="a_edge3"><a xlink:title="at router_timestamper.go:273: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery]">
<path fill="none" stroke="#000000" d="M512.9592,-324.9516C534.7608,-327.9303 563.365,-331.8385 590.0004,-335.4777"/>
<polygon fill="#000000" stroke="#000000" points="589.7122,-338.9708 600.0939,-336.8568 590.6598,-332.0352 589.7122,-338.9708"/>
<path fill="none" stroke="#000000" d="M512.9592,-363.4293C534.7608,-360.6797 563.365,-357.0721 590.0004,-353.7129"/>
<polygon fill="#000000" stroke="#000000" points="590.6105,-357.1637 600.0939,-352.4399 589.7346,-350.2188 590.6105,-357.1637"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).TimestampNow -->
<g id="node15" class="node">
<g id="node14" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).TimestampNow</title>
<g id="a_node15"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).TimestampNow | defined in router_timestamper.go:119&#10;at router_timestamper.go:121: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).runOnce]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M347.1672,-338C347.1672,-338 256.7628,-338 256.7628,-338 250.7628,-338 244.7628,-332 244.7628,-326 244.7628,-326 244.7628,-314 244.7628,-314 244.7628,-308 250.7628,-302 256.7628,-302 256.7628,-302 347.1672,-302 347.1672,-302 353.1672,-302 359.1672,-308 359.1672,-314 359.1672,-314 359.1672,-326 359.1672,-326 359.1672,-332 353.1672,-338 347.1672,-338"/>
<text text-anchor="middle" x="301.965" y="-315.8" font-family="Verdana" font-size="14.00" fill="#000000">TimestampNow</text>
<g id="a_node14"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).TimestampNow | defined in router_timestamper.go:119&#10;at router_timestamper.go:121: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).runOnce]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M347.1672,-386C347.1672,-386 256.7628,-386 256.7628,-386 250.7628,-386 244.7628,-380 244.7628,-374 244.7628,-374 244.7628,-362 244.7628,-362 244.7628,-356 250.7628,-350 256.7628,-350 256.7628,-350 347.1672,-350 347.1672,-350 353.1672,-350 359.1672,-356 359.1672,-362 359.1672,-362 359.1672,-374 359.1672,-374 359.1672,-380 353.1672,-386 347.1672,-386"/>
<text text-anchor="middle" x="301.965" y="-363.8" font-family="Verdana" font-size="14.00" fill="#000000">TimestampNow</text>
</a>
</g>
</g>
@ -322,84 +304,102 @@
<g id="edge11" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).TimestampNow&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).runOnce</title>
<g id="a_edge11"><a xlink:title="at router_timestamper.go:121: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).runOnce]">
<path fill="none" stroke="#000000" d="M359.1857,-320C377.8039,-320 398.5042,-320 417.2807,-320"/>
<polygon fill="#000000" stroke="#000000" points="430.5192,-323.5 440.5192,-320 430.5192,-316.5 430.5192,-323.5"/>
<polyline fill="none" stroke="#000000" points="430.5192,-320 425.5192,-320.0001 "/>
<ellipse fill="none" stroke="#000000" cx="421.5192" cy="-320.0001" rx="4" ry="4"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).Start -->
<g id="node16" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).Start</title>
<g id="a_node16"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).Start | defined in router_timestamper.go:69&#10;at router_timestamper.go:75: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).run]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M316.965,-399C316.965,-399 286.965,-399 286.965,-399 280.965,-399 274.965,-393 274.965,-387 274.965,-387 274.965,-375 274.965,-375 274.965,-369 280.965,-363 286.965,-363 286.965,-363 316.965,-363 316.965,-363 322.965,-363 328.965,-369 328.965,-375 328.965,-375 328.965,-387 328.965,-387 328.965,-393 322.965,-399 316.965,-399"/>
<text text-anchor="middle" x="301.965" y="-376.8" font-family="Verdana" font-size="14.00" fill="#000000">Start</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).Start&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).run -->
<g id="edge4" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).Start&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).run</title>
<g id="a_edge4"><a xlink:title="at router_timestamper.go:75: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).run]">
<path fill="none" stroke="#000000" d="M329.2702,-381C355.1753,-381 394.7342,-381 426.3574,-381"/>
<polygon fill="#000000" stroke="#000000" points="439.6048,-384.5 449.6048,-381 439.6047,-377.5 439.6048,-384.5"/>
<polyline fill="none" stroke="#000000" points="439.6048,-381 434.6048,-381.0001 "/>
<ellipse fill="none" stroke="#000000" cx="430.6048" cy="-381.0001" rx="4" ry="4"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).validateResponse -->
<g id="node17" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).validateResponse</title>
<g id="a_node17"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).validateResponse | defined in verification.go:10&#10;at verification.go:28: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M138.6256,-277C138.6256,-277 40.6844,-277 40.6844,-277 34.6844,-277 28.6844,-271 28.6844,-265 28.6844,-265 28.6844,-253 28.6844,-253 28.6844,-247 34.6844,-241 40.6844,-241 40.6844,-241 138.6256,-241 138.6256,-241 144.6256,-241 150.6256,-247 150.6256,-253 150.6256,-253 150.6256,-265 150.6256,-265 150.6256,-271 144.6256,-277 138.6256,-277"/>
<text text-anchor="middle" x="89.655" y="-254.8" font-family="Verdana" font-size="14.00" fill="#000000">validateResponse</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).validateResponse&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration -->
<g id="edge5" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).validateResponse&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration</title>
<g id="a_edge5"><a xlink:title="at verification.go:28: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration]">
<path fill="none" stroke="#000000" d="M100.4525,-240.807C128.0129,-196.9517 205.6372,-89 301.965,-89 301.965,-89 301.965,-89 898.9182,-89 915.7442,-89 1006.7672,-65.4742 1067.7373,-49.1952"/>
<polygon fill="#000000" stroke="#000000" points="1068.8677,-52.516 1077.6226,-46.5492 1067.0576,-45.754 1068.8677,-52.516"/>
<path fill="none" stroke="#000000" d="M359.1857,-368C377.8039,-368 398.5042,-368 417.2807,-368"/>
<polygon fill="#000000" stroke="#000000" points="430.5192,-371.5 440.5192,-368 430.5192,-364.5 430.5192,-371.5"/>
<polyline fill="none" stroke="#000000" points="430.5192,-368 425.5192,-368.0001 "/>
<ellipse fill="none" stroke="#000000" cx="421.5192" cy="-368.0001" rx="4" ry="4"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).GetCurrentTime -->
<g id="node18" class="node">
<g id="node15" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).GetCurrentTime</title>
<g id="a_node18"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).GetCurrentTime | defined in router_timestamper.go:397&#10;at router_timestamper.go:400: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).TimestampNow]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M135.6792,-338C135.6792,-338 43.6308,-338 43.6308,-338 37.6308,-338 31.6308,-332 31.6308,-326 31.6308,-326 31.6308,-314 31.6308,-314 31.6308,-308 37.6308,-302 43.6308,-302 43.6308,-302 135.6792,-302 135.6792,-302 141.6792,-302 147.6792,-308 147.6792,-314 147.6792,-314 147.6792,-326 147.6792,-326 147.6792,-332 141.6792,-338 135.6792,-338"/>
<text text-anchor="middle" x="89.655" y="-315.8" font-family="Verdana" font-size="14.00" fill="#000000">GetCurrentTime</text>
<g id="a_node15"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).GetCurrentTime | defined in router_timestamper.go:397&#10;at router_timestamper.go:400: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).TimestampNow]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M135.6792,-386C135.6792,-386 43.6308,-386 43.6308,-386 37.6308,-386 31.6308,-380 31.6308,-374 31.6308,-374 31.6308,-362 31.6308,-362 31.6308,-356 37.6308,-350 43.6308,-350 43.6308,-350 135.6792,-350 135.6792,-350 141.6792,-350 147.6792,-356 147.6792,-362 147.6792,-362 147.6792,-374 147.6792,-374 147.6792,-380 141.6792,-386 135.6792,-386"/>
<text text-anchor="middle" x="89.655" y="-363.8" font-family="Verdana" font-size="14.00" fill="#000000">GetCurrentTime</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).GetCurrentTime&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).TimestampNow -->
<g id="edge12" class="edge">
<g id="edge15" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).GetCurrentTime&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).TimestampNow</title>
<g id="a_edge12"><a xlink:title="at router_timestamper.go:400: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).TimestampNow]">
<path fill="none" stroke="#000000" d="M147.9505,-320C174.7367,-320 206.6648,-320 234.487,-320"/>
<polygon fill="#000000" stroke="#000000" points="234.5344,-323.5001 244.5344,-320 234.5343,-316.5001 234.5344,-323.5001"/>
<g id="a_edge15"><a xlink:title="at router_timestamper.go:400: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).TimestampNow]">
<path fill="none" stroke="#000000" d="M147.9505,-368C174.7367,-368 206.6648,-368 234.487,-368"/>
<polygon fill="#000000" stroke="#000000" points="234.5344,-371.5001 244.5344,-368 234.5343,-364.5001 234.5344,-371.5001"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).validateResponse -->
<g id="node16" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).validateResponse</title>
<g id="a_node16"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).validateResponse | defined in verification.go:10&#10;at verification.go:28: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M138.6256,-286C138.6256,-286 40.6844,-286 40.6844,-286 34.6844,-286 28.6844,-280 28.6844,-274 28.6844,-274 28.6844,-262 28.6844,-262 28.6844,-256 34.6844,-250 40.6844,-250 40.6844,-250 138.6256,-250 138.6256,-250 144.6256,-250 150.6256,-256 150.6256,-262 150.6256,-262 150.6256,-274 150.6256,-274 150.6256,-280 144.6256,-286 138.6256,-286"/>
<text text-anchor="middle" x="89.655" y="-263.8" font-family="Verdana" font-size="14.00" fill="#000000">validateResponse</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).validateResponse&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration -->
<g id="edge16" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).validateResponse&#45;&gt;github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration</title>
<g id="a_edge16"><a xlink:title="at verification.go:28: calling [github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.absDuration]">
<path fill="none" stroke="#000000" d="M125.453,-249.8939C166.855,-230.6609 237.5896,-203 301.965,-203 301.965,-203 301.965,-203 898.9182,-203 956.2509,-203 1021.6676,-198.7379 1067.1138,-195.0945"/>
<polygon fill="#000000" stroke="#000000" points="1067.6758,-198.5603 1077.3571,-194.2567 1067.1051,-191.5836 1067.6758,-198.5603"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).run -->
<g id="node17" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).run</title>
<g id="a_node17"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).run | defined in router_timestamper.go:215&#10;at router_timestamper.go:218: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery]">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M491.7182,-325C491.7182,-325 461.7182,-325 461.7182,-325 455.7182,-325 449.7182,-319 449.7182,-313 449.7182,-313 449.7182,-301 449.7182,-301 449.7182,-295 455.7182,-289 461.7182,-289 461.7182,-289 491.7182,-289 491.7182,-289 497.7182,-289 503.7182,-295 503.7182,-301 503.7182,-301 503.7182,-313 503.7182,-313 503.7182,-319 497.7182,-325 491.7182,-325"/>
<text text-anchor="middle" x="476.7182" y="-302.8" font-family="Verdana" font-size="14.00" fill="#000000">run</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).run&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery -->
<g id="edge12" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).run&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery</title>
<g id="a_edge12"><a xlink:title="at router_timestamper.go:218: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).performTimeQuery]">
<path fill="none" stroke="#000000" d="M503.9829,-312.3012C526.61,-316.7007 559.9243,-323.1782 590.5502,-329.1329"/>
<polygon fill="#000000" stroke="#000000" points="589.8981,-332.5716 600.3823,-331.0446 591.2341,-325.7002 589.8981,-332.5716"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).Start -->
<g id="node18" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).Start</title>
<g id="a_node18"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).Start | defined in router_timestamper.go:69&#10;at router_timestamper.go:75: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).run]">
<path fill="#add8e6" stroke="#000000" stroke-width="1.5" d="M316.965,-325C316.965,-325 286.965,-325 286.965,-325 280.965,-325 274.965,-319 274.965,-313 274.965,-313 274.965,-301 274.965,-301 274.965,-295 280.965,-289 286.965,-289 286.965,-289 316.965,-289 316.965,-289 322.965,-289 328.965,-295 328.965,-301 328.965,-301 328.965,-313 328.965,-313 328.965,-319 322.965,-325 316.965,-325"/>
<text text-anchor="middle" x="301.965" y="-302.8" font-family="Verdana" font-size="14.00" fill="#000000">Start</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).Start&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).run -->
<g id="edge5" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).Start&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).run</title>
<g id="a_edge5"><a xlink:title="at router_timestamper.go:75: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.RouterTimestamper).run]">
<path fill="none" stroke="#000000" d="M329.2702,-307C355.1753,-307 394.7342,-307 426.3574,-307"/>
<polygon fill="#000000" stroke="#000000" points="439.6048,-310.5 449.6048,-307 439.6047,-303.5 439.6048,-310.5"/>
<polyline fill="none" stroke="#000000" points="439.6048,-307 434.6048,-307.0001 "/>
<ellipse fill="none" stroke="#000000" cx="430.6048" cy="-307.0001" rx="4" ry="4"/>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).readContinentFile -->
<g id="node21" class="node">
<g id="node20" class="node">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).readContinentFile</title>
<g id="a_node21"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).readContinentFile | defined in zones.go:54">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M1384.1792,-130C1384.1792,-130 1282.9968,-130 1282.9968,-130 1276.9968,-130 1270.9968,-124 1270.9968,-118 1270.9968,-118 1270.9968,-106 1270.9968,-106 1270.9968,-100 1276.9968,-94 1282.9968,-94 1282.9968,-94 1384.1792,-94 1384.1792,-94 1390.1792,-94 1396.1792,-100 1396.1792,-106 1396.1792,-106 1396.1792,-118 1396.1792,-118 1396.1792,-124 1390.1792,-130 1384.1792,-130"/>
<text text-anchor="middle" x="1333.588" y="-107.8" font-family="Verdana" font-size="14.00" fill="#000000">readContinentFile</text>
<g id="a_node20"><a xlink:title="(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).readContinentFile | defined in zones.go:54">
<path fill="#add8e6" stroke="#000000" stroke-width=".5" d="M1384.1792,-86C1384.1792,-86 1282.9968,-86 1282.9968,-86 1276.9968,-86 1270.9968,-80 1270.9968,-74 1270.9968,-74 1270.9968,-62 1270.9968,-62 1270.9968,-56 1276.9968,-50 1282.9968,-50 1282.9968,-50 1384.1792,-50 1384.1792,-50 1390.1792,-50 1396.1792,-56 1396.1792,-62 1396.1792,-62 1396.1792,-74 1396.1792,-74 1396.1792,-80 1390.1792,-86 1384.1792,-86"/>
<text text-anchor="middle" x="1333.588" y="-63.8" font-family="Verdana" font-size="14.00" fill="#000000">readContinentFile</text>
</a>
</g>
</g>
<!-- (*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).initialize&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).readContinentFile -->
<g id="edge19" class="edge">
<g id="edge13" class="edge">
<title>(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).initialize&#45;&gt;(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).readContinentFile</title>
<g id="a_edge19"><a xlink:title="at zones.go:51: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).readContinentFile]">
<path fill="none" stroke="#000000" d="M1160.3704,-112C1187.9205,-112 1226.6146,-112 1260.4451,-112"/>
<polygon fill="#000000" stroke="#000000" points="1260.7704,-115.5001 1270.7704,-112 1260.7703,-108.5001 1260.7704,-115.5001"/>
<g id="a_edge13"><a xlink:title="at zones.go:51: calling [(*github.com/go&#45;i2p/go&#45;i2p/lib/util/time/sntp.Zones).readContinentFile]">
<path fill="none" stroke="#000000" d="M1160.3704,-68C1187.9205,-68 1226.6146,-68 1260.4451,-68"/>
<polygon fill="#000000" stroke="#000000" points="1260.7704,-71.5001 1270.7704,-68 1260.7703,-64.5001 1260.7704,-71.5001"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB