Skip to content

Instantly share code, notes, and snippets.

@jmhodges
Created April 30, 2016 21:55
Show Gist options
  • Save jmhodges/72869f007b58f527595766487add4af0 to your computer and use it in GitHub Desktop.
Save jmhodges/72869f007b58f527595766487add4af0 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.38.0 (20140413.2041)
-->
<!-- Title: unnamed Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/**
* SVGPan library 1.2.1
* ======================
*
* Given an unique existing element with id "viewport" (or when missing, the first g
* element), including the the library into any SVG adds the following capabilities:
*
* - Mouse panning
* - Mouse zooming (using the wheel)
* - Object dragging
*
* You can configure the behaviour of the pan/zoom/drag with the variables
* listed in the CONFIGURATION section of this file.
*
* Known issues:
*
* - Zooming (while panning) on Safari has still some issues
*
* Releases:
*
* 1.2.1, Mon Jul 4 00:33:18 CEST 2011, Andrea Leofreddi
* - Fixed a regression with mouse wheel (now working on Firefox 5)
* - Working with viewBox attribute (#4)
* - Added "use strict;" and fixed resulting warnings (#5)
* - Added configuration variables, dragging is disabled by default (#3)
*
* 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
* Fixed a bug with browser mouse handler interaction
*
* 1.1, Wed Feb 3 17:39:33 GMT 2010, Zeng Xiaohui
* Updated the zoom code to support the mouse wheel on Safari/Chrome
*
* 1.0, Andrea Leofreddi
* First release
*
* This code is licensed under the following BSD license:
*
* Copyright 2009-2010 Andrea Leofreddi <[email protected]>. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of Andrea Leofreddi.
*/
"use strict";
/// CONFIGURATION
/// ====>
var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)
/// <====
/// END OF CONFIGURATION
var root = document.documentElement;
var state = 'none', svgRoot, stateTarget, stateOrigin, stateTf;
setupHandlers(root);
/**
* Register handlers
*/
function setupHandlers(root){
setAttributes(root, {
"onmouseup" : "handleMouseUp(evt)",
"onmousedown" : "handleMouseDown(evt)",
"onmousemove" : "handleMouseMove(evt)",
//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
});
if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
else
window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}
/**
* Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
*/
function getRoot(root) {
if(typeof(svgRoot) == "undefined") {
var g = null;
g = root.getElementById("viewport");
if(g == null)
g = root.getElementsByTagName('g')[0];
if(g == null)
alert('Unable to obtain SVG root element');
setCTM(g, g.getCTM());
g.removeAttribute("viewBox");
svgRoot = g;
}
return svgRoot;
}
/**
* Instance an SVGPoint object with given event coordinates.
*/
function getEventPoint(evt) {
var p = root.createSVGPoint();
p.x = evt.clientX;
p.y = evt.clientY;
return p;
}
/**
* Sets the current transform matrix of an element.
*/
function setCTM(element, matrix) {
var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";
element.setAttribute("transform", s);
}
/**
* Dumps a matrix to a string (useful for debug).
*/
function dumpMatrix(matrix) {
var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n 0, 0, 1 ]";
return s;
}
/**
* Sets attributes of an element.
*/
function setAttributes(element, attributes){
for (var i in attributes)
element.setAttributeNS(null, i, attributes[i]);
}
/**
* Handle mouse wheel event.
*/
function handleMouseWheel(evt) {
if(!enableZoom)
return;
if(evt.preventDefault)
evt.preventDefault();
evt.returnValue = false;
var svgDoc = evt.target.ownerDocument;
var delta;
if(evt.wheelDelta)
delta = evt.wheelDelta / 3600; // Chrome/Safari
else
delta = evt.detail / -90; // Mozilla
var z = 1 + delta; // Zoom factor: 0.9/1.1
var g = getRoot(svgDoc);
var p = getEventPoint(evt);
p = p.matrixTransform(g.getCTM().inverse());
// Compute new scale matrix in current mouse position
var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);
setCTM(g, g.getCTM().multiply(k));
if(typeof(stateTf) == "undefined")
stateTf = g.getCTM().inverse();
stateTf = stateTf.multiply(k.inverse());
}
/**
* Handle mouse move event.
*/
function handleMouseMove(evt) {
if(evt.preventDefault)
evt.preventDefault();
evt.returnValue = false;
var svgDoc = evt.target.ownerDocument;
var g = getRoot(svgDoc);
if(state == 'pan' && enablePan) {
// Pan mode
var p = getEventPoint(evt).matrixTransform(stateTf);
setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
} else if(state == 'drag' && enableDrag) {
// Drag mode
var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());
setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));
stateOrigin = p;
}
}
/**
* Handle click event.
*/
function handleMouseDown(evt) {
if(evt.preventDefault)
evt.preventDefault();
evt.returnValue = false;
var svgDoc = evt.target.ownerDocument;
var g = getRoot(svgDoc);
if(
evt.target.tagName == "svg"
|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element
) {
// Pan mode
state = 'pan';
stateTf = g.getCTM().inverse();
stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
} else {
// Drag mode
state = 'drag';
stateTarget = evt.target;
stateTf = g.getCTM().inverse();
stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
}
}
/**
* Handle mouse button release event.
*/
function handleMouseUp(evt) {
if(evt.preventDefault)
evt.preventDefault();
evt.returnValue = false;
var svgDoc = evt.target.ownerDocument;
if(state == 'pan' || state == 'drag') {
// Quit pan mode
state = '';
}
}
]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1958)">
<title>unnamed</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-1958 2067,-1958 2067,4 -4,4"/>
<g id="clust1" class="cluster"><title>cluster_L</title>
<polygon fill="none" stroke="black" points="389,-1747 389,-1946 903,-1946 903,-1747 389,-1747"/>
</g>
<!-- L -->
<g id="node1" class="node"><title>L</title>
<polygon fill="#f8f8f8" stroke="black" points="894.5,-1938 397.5,-1938 397.5,-1755 894.5,-1755 894.5,-1938"/>
<text text-anchor="start" x="405.5" y="-1908.4" font-family="Times,serif" font-size="32.00">Type: inuse_objects</text>
<text text-anchor="start" x="405.5" y="-1873.4" font-family="Times,serif" font-size="32.00">Time: Apr 30, 2016 at 2:44pm (PDT)</text>
<text text-anchor="start" x="405.5" y="-1838.4" font-family="Times,serif" font-size="32.00">35159 of 1873 total ( &#160;100%)</text>
<text text-anchor="start" x="405.5" y="-1803.4" font-family="Times,serif" font-size="32.00">Dropped 280 nodes (cum &lt;= 9)</text>
<text text-anchor="start" x="405.5" y="-1768.4" font-family="Times,serif" font-size="32.00">Dropped 5 edges (freq &lt;= 1)</text>
</g>
<!-- N1 -->
<g id="node2" class="node"><title>N1</title>
<g id="a_node2"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*ClientHelloMsg).unmarshal (8192)">
<polygon fill="#f8f8f8" stroke="black" points="1281,-331 619,-331 619,-271 1281,-271 1281,-331"/>
<text text-anchor="middle" x="950" y="-307.8" font-family="Times,serif" font-size="24.00">github.com/jmhodges/howsmyssl/tls.(*ClientHelloMsg).unmarshal</text>
<text text-anchor="middle" x="950" y="-281.8" font-family="Times,serif" font-size="24.00">8192(100%)</text>
</a>
</g>
</g>
<!-- NN1_0 -->
<g id="node3" class="node"><title>NN1_0</title>
<g id="a_node3"><a xlink:title="8192">
<polygon fill="#f8f8f8" stroke="black" points="977,-220 927,-220 923,-216 923,-184 973,-184 977,-188 977,-220"/>
<polyline fill="none" stroke="black" points="973,-216 923,-216 "/>
<polyline fill="none" stroke="black" points="973,-216 973,-184 "/>
<polyline fill="none" stroke="black" points="973,-216 977,-220 "/>
<text text-anchor="middle" x="950" y="-200.1" font-family="Times,serif" font-size="8.00">64B</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;NN1_0 -->
<g id="edge1" class="edge"><title>N1&#45;&gt;NN1_0</title>
<g id="a_edge1"><a xlink:title=" 8192">
<path fill="none" stroke="black" d="M950,-270.897C950,-258.121 950,-243.195 950,-230.597"/>
<polygon fill="black" stroke="black" points="953.5,-230.237 950,-220.237 946.5,-230.237 953.5,-230.237"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title=" 8192">
<text text-anchor="middle" x="966" y="-241.8" font-family="Times,serif" font-size="14.00"> 8192</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node4" class="node"><title>N2</title>
<g id="a_node4"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*serverHelloMsg).marshal (8192)">
<polygon fill="#f8f8f8" stroke="black" points="1713,-442 1075,-442 1075,-382 1713,-382 1713,-442"/>
<text text-anchor="middle" x="1394" y="-418.8" font-family="Times,serif" font-size="24.00">github.com/jmhodges/howsmyssl/tls.(*serverHelloMsg).marshal</text>
<text text-anchor="middle" x="1394" y="-392.8" font-family="Times,serif" font-size="24.00">8192(100%)</text>
</a>
</g>
</g>
<!-- NN2_0 -->
<g id="node5" class="node"><title>NN2_0</title>
<g id="a_node5"><a xlink:title="8192">
<polygon fill="#f8f8f8" stroke="black" points="1421,-319 1371,-319 1367,-315 1367,-283 1417,-283 1421,-287 1421,-319"/>
<polyline fill="none" stroke="black" points="1417,-315 1367,-315 "/>
<polyline fill="none" stroke="black" points="1417,-315 1417,-283 "/>
<polyline fill="none" stroke="black" points="1417,-315 1421,-319 "/>
<text text-anchor="middle" x="1394" y="-299.1" font-family="Times,serif" font-size="8.00">64B</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;NN2_0 -->
<g id="edge2" class="edge"><title>N2&#45;&gt;NN2_0</title>
<g id="a_edge2"><a xlink:title=" 8192">
<path fill="none" stroke="black" d="M1394,-381.79C1394,-365.497 1394,-345.328 1394,-329.346"/>
<polygon fill="black" stroke="black" points="1397.5,-329.048 1394,-319.048 1390.5,-329.048 1397.5,-329.048"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title=" 8192">
<text text-anchor="middle" x="1410" y="-352.8" font-family="Times,serif" font-size="14.00"> 8192</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node6" class="node"><title>N3</title>
<g id="a_node6"><a xlink:title="syscall.anyToSockaddr (8192)">
<polygon fill="#f8f8f8" stroke="black" points="777,-727 537,-727 537,-667 777,-667 777,-727"/>
<text text-anchor="middle" x="657" y="-703.8" font-family="Times,serif" font-size="24.00">syscall.anyToSockaddr</text>
<text text-anchor="middle" x="657" y="-677.8" font-family="Times,serif" font-size="24.00">8192(100%)</text>
</a>
</g>
</g>
<!-- NN3_0 -->
<g id="node7" class="node"><title>NN3_0</title>
<g id="a_node7"><a xlink:title="8192">
<polygon fill="#f8f8f8" stroke="black" points="684,-616 634,-616 630,-612 630,-580 680,-580 684,-584 684,-616"/>
<polyline fill="none" stroke="black" points="680,-612 630,-612 "/>
<polyline fill="none" stroke="black" points="680,-612 680,-580 "/>
<polyline fill="none" stroke="black" points="680,-612 684,-616 "/>
<text text-anchor="middle" x="657" y="-596.1" font-family="Times,serif" font-size="8.00">64B</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;NN3_0 -->
<g id="edge3" class="edge"><title>N3&#45;&gt;NN3_0</title>
<g id="a_edge3"><a xlink:title=" 8192">
<path fill="none" stroke="black" d="M657,-666.897C657,-654.121 657,-639.195 657,-626.597"/>
<polygon fill="black" stroke="black" points="660.5,-626.237 657,-616.237 653.5,-626.237 660.5,-626.237"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title=" 8192">
<text text-anchor="middle" x="673" y="-637.8" font-family="Times,serif" font-size="14.00"> 8192</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node8" class="node"><title>N4</title>
<g id="a_node8"><a xlink:title="crypto/aes.NewCipher (2979)">
<polygon fill="#f8f8f8" stroke="black" points="381,-325 203,-325 203,-277 381,-277 381,-325"/>
<text text-anchor="middle" x="292" y="-306.6" font-family="Times,serif" font-size="18.00">crypto/aes.NewCipher</text>
<text text-anchor="middle" x="292" y="-286.6" font-family="Times,serif" font-size="18.00">2979(100%)</text>
</a>
</g>
</g>
<!-- NN4_0 -->
<g id="node9" class="node"><title>NN4_0</title>
<g id="a_node9"><a xlink:title="2979">
<polygon fill="#f8f8f8" stroke="black" points="319,-220 269,-220 265,-216 265,-184 315,-184 319,-188 319,-220"/>
<polyline fill="none" stroke="black" points="315,-216 265,-216 "/>
<polyline fill="none" stroke="black" points="315,-216 315,-184 "/>
<polyline fill="none" stroke="black" points="315,-216 319,-220 "/>
<text text-anchor="middle" x="292" y="-200.1" font-family="Times,serif" font-size="8.00">176B</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;NN4_0 -->
<g id="edge4" class="edge"><title>N4&#45;&gt;NN4_0</title>
<g id="a_edge4"><a xlink:title=" 2979">
<path fill="none" stroke="black" d="M292,-276.519C292,-262.668 292,-245.068 292,-230.562"/>
<polygon fill="black" stroke="black" points="295.5,-230.185 292,-220.185 288.5,-230.185 295.5,-230.185"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title=" 2979">
<text text-anchor="middle" x="308" y="-241.8" font-family="Times,serif" font-size="14.00"> 2979</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node10" class="node"><title>N5</title>
<g id="a_node10"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*block).reserve (2178)">
<polygon fill="#f8f8f8" stroke="black" points="690.5,-133 309.5,-133 309.5,-87 690.5,-87 690.5,-133"/>
<text text-anchor="middle" x="500" y="-115.4" font-family="Times,serif" font-size="17.00">github.com/jmhodges/howsmyssl/tls.(*block).reserve</text>
<text text-anchor="middle" x="500" y="-96.4" font-family="Times,serif" font-size="17.00">2178(100%)</text>
</a>
</g>
</g>
<!-- NN5_0 -->
<g id="node11" class="node"><title>NN5_0</title>
<g id="a_node11"><a xlink:title="2050">
<polygon fill="#f8f8f8" stroke="black" points="563,-36 513,-36 509,-32 509,-0 559,-0 563,-4 563,-36"/>
<polyline fill="none" stroke="black" points="559,-32 509,-32 "/>
<polyline fill="none" stroke="black" points="559,-32 559,-0 "/>
<polyline fill="none" stroke="black" points="559,-32 563,-36 "/>
<text text-anchor="middle" x="536" y="-16.1" font-family="Times,serif" font-size="8.00">1kB</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;NN5_0 -->
<g id="edge5" class="edge"><title>N5&#45;&gt;NN5_0</title>
<g id="a_edge5"><a xlink:title=" 2050">
<path fill="none" stroke="black" d="M508.899,-86.7528C513.877,-74.3087 520.114,-58.7143 525.35,-45.6246"/>
<polygon fill="black" stroke="black" points="528.657,-46.7812 529.121,-36.1966 522.158,-44.1815 528.657,-46.7812"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title=" 2050">
<text text-anchor="middle" x="538" y="-57.8" font-family="Times,serif" font-size="14.00"> 2050</text>
</a>
</g>
</g>
<!-- NN5_1 -->
<g id="node12" class="node"><title>NN5_1</title>
<g id="a_node12"><a xlink:title="128">
<polygon fill="#f8f8f8" stroke="black" points="491,-36 441,-36 437,-32 437,-0 487,-0 491,-4 491,-36"/>
<polyline fill="none" stroke="black" points="487,-32 437,-32 "/>
<polyline fill="none" stroke="black" points="487,-32 487,-0 "/>
<polyline fill="none" stroke="black" points="487,-32 491,-36 "/>
<text text-anchor="middle" x="464" y="-16.1" font-family="Times,serif" font-size="8.00">4kB</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;NN5_1 -->
<g id="edge6" class="edge"><title>N5&#45;&gt;NN5_1</title>
<g id="a_edge6"><a xlink:title=" 128">
<path fill="none" stroke="black" d="M491.101,-86.7528C486.123,-74.3087 479.886,-58.7143 474.65,-45.6246"/>
<polygon fill="black" stroke="black" points="477.842,-44.1815 470.879,-36.1966 471.343,-46.7812 477.842,-44.1815"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title=" 128">
<text text-anchor="middle" x="496.5" y="-57.8" font-family="Times,serif" font-size="14.00"> 128</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node13" class="node"><title>N6</title>
<g id="a_node13"><a xlink:title="crypto/aes.(*aesCipherGCM).NewGCM (1820)">
<polygon fill="#f8f8f8" stroke="black" points="276,-132 0,-132 0,-88 276,-88 276,-132"/>
<text text-anchor="middle" x="138" y="-115.2" font-family="Times,serif" font-size="16.00">crypto/aes.(*aesCipherGCM).NewGCM</text>
<text text-anchor="middle" x="138" y="-97.2" font-family="Times,serif" font-size="16.00">1820(97.17%)</text>
</a>
</g>
</g>
<!-- NN6_0 -->
<g id="node14" class="node"><title>NN6_0</title>
<g id="a_node14"><a xlink:title="1820">
<polygon fill="#f8f8f8" stroke="black" points="165,-36 115,-36 111,-32 111,-0 161,-0 165,-4 165,-36"/>
<polyline fill="none" stroke="black" points="161,-32 111,-32 "/>
<polyline fill="none" stroke="black" points="161,-32 161,-0 "/>
<polyline fill="none" stroke="black" points="161,-32 165,-36 "/>
<text text-anchor="middle" x="138" y="-16.1" font-family="Times,serif" font-size="8.00">288B</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;NN6_0 -->
<g id="edge7" class="edge"><title>N6&#45;&gt;NN6_0</title>
<g id="a_edge7"><a xlink:title=" 1820">
<path fill="none" stroke="black" d="M138,-87.6713C138,-75.2844 138,-59.5523 138,-46.2721"/>
<polygon fill="black" stroke="black" points="141.5,-46.258 138,-36.2581 134.5,-46.2581 141.5,-46.258"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title=" 1820">
<text text-anchor="middle" x="154" y="-57.8" font-family="Times,serif" font-size="14.00"> 1820</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node15" class="node"><title>N7</title>
<g id="a_node15"><a xlink:title="runtime.malg (1365)">
<polygon fill="#f8f8f8" stroke="black" points="1431.5,-1443 1328.5,-1443 1328.5,-1401 1431.5,-1401 1431.5,-1443"/>
<text text-anchor="middle" x="1380" y="-1427" font-family="Times,serif" font-size="15.00">runtime.malg</text>
<text text-anchor="middle" x="1380" y="-1410" font-family="Times,serif" font-size="15.00">1365(72.88%)</text>
</a>
</g>
</g>
<!-- NN7_0 -->
<g id="node16" class="node"><title>NN7_0</title>
<g id="a_node16"><a xlink:title="1365">
<polygon fill="#f8f8f8" stroke="black" points="1407,-1343 1357,-1343 1353,-1339 1353,-1307 1403,-1307 1407,-1311 1407,-1343"/>
<polyline fill="none" stroke="black" points="1403,-1339 1353,-1339 "/>
<polyline fill="none" stroke="black" points="1403,-1339 1403,-1307 "/>
<polyline fill="none" stroke="black" points="1403,-1339 1407,-1343 "/>
<text text-anchor="middle" x="1380" y="-1323.1" font-family="Times,serif" font-size="8.00">384B</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;NN7_0 -->
<g id="edge8" class="edge"><title>N7&#45;&gt;NN7_0</title>
<g id="a_edge8"><a xlink:title=" 1365">
<path fill="none" stroke="black" d="M1380,-1400.85C1380,-1387.09 1380,-1368.68 1380,-1353.56"/>
<polygon fill="black" stroke="black" points="1383.5,-1353.25 1380,-1343.25 1376.5,-1353.25 1383.5,-1353.25"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title=" 1365">
<text text-anchor="middle" x="1396" y="-1371.8" font-family="Times,serif" font-size="14.00"> 1365</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node17" class="node"><title>N8</title>
<g id="a_node17"><a xlink:title="net/http.newBufioReader (771)">
<polygon fill="#f8f8f8" stroke="black" points="1316.5,-1617 1169.5,-1617 1169.5,-1581 1316.5,-1581 1316.5,-1617"/>
<text text-anchor="middle" x="1243" y="-1602.6" font-family="Times,serif" font-size="13.00">net/http.newBufioReader</text>
<text text-anchor="middle" x="1243" y="-1588.6" font-family="Times,serif" font-size="13.00">771(41.16%)</text>
</a>
</g>
</g>
<!-- NN8_0 -->
<g id="node18" class="node"><title>NN8_0</title>
<g id="a_node18"><a xlink:title="771">
<polygon fill="#f8f8f8" stroke="black" points="1270,-1530 1220,-1530 1216,-1526 1216,-1494 1266,-1494 1270,-1498 1270,-1530"/>
<polyline fill="none" stroke="black" points="1266,-1526 1216,-1526 "/>
<polyline fill="none" stroke="black" points="1266,-1526 1266,-1494 "/>
<polyline fill="none" stroke="black" points="1266,-1526 1270,-1530 "/>
<text text-anchor="middle" x="1243" y="-1510.1" font-family="Times,serif" font-size="8.00">4kB</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;NN8_0 -->
<g id="edge9" class="edge"><title>N8&#45;&gt;NN8_0</title>
<g id="a_edge9"><a xlink:title=" 771">
<path fill="none" stroke="black" d="M1243,-1580.8C1243,-1569.16 1243,-1553.55 1243,-1540.24"/>
<polygon fill="black" stroke="black" points="1246.5,-1540.18 1243,-1530.18 1239.5,-1540.18 1246.5,-1540.18"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title=" 771">
<text text-anchor="middle" x="1255.5" y="-1551.8" font-family="Times,serif" font-size="14.00"> 771</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node19" class="node"><title>N9</title>
<g id="a_node19"><a xlink:title="net/http.newBufioWriterSize (771)">
<polygon fill="#f8f8f8" stroke="black" points="877,-1617 711,-1617 711,-1581 877,-1581 877,-1617"/>
<text text-anchor="middle" x="794" y="-1602.6" font-family="Times,serif" font-size="13.00">net/http.newBufioWriterSize</text>
<text text-anchor="middle" x="794" y="-1588.6" font-family="Times,serif" font-size="13.00">771(41.16%)</text>
</a>
</g>
</g>
<!-- NN9_0 -->
<g id="node20" class="node"><title>NN9_0</title>
<g id="a_node20"><a xlink:title="771">
<polygon fill="#f8f8f8" stroke="black" points="821,-1530 771,-1530 767,-1526 767,-1494 817,-1494 821,-1498 821,-1530"/>
<polyline fill="none" stroke="black" points="817,-1526 767,-1526 "/>
<polyline fill="none" stroke="black" points="817,-1526 817,-1494 "/>
<polyline fill="none" stroke="black" points="817,-1526 821,-1530 "/>
<text text-anchor="middle" x="794" y="-1510.1" font-family="Times,serif" font-size="8.00">4kB</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;NN9_0 -->
<g id="edge10" class="edge"><title>N9&#45;&gt;NN9_0</title>
<g id="a_edge10"><a xlink:title=" 771">
<path fill="none" stroke="black" d="M794,-1580.8C794,-1569.16 794,-1553.55 794,-1540.24"/>
<polygon fill="black" stroke="black" points="797.5,-1540.18 794,-1530.18 790.5,-1540.18 797.5,-1540.18"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title=" 771">
<text text-anchor="middle" x="806.5" y="-1551.8" font-family="Times,serif" font-size="14.00"> 771</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node21" class="node"><title>N10</title>
<g id="a_node21"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*listener).Accept (8875)">
<polygon fill="#f8f8f8" stroke="black" points="809,-1350 505,-1350 505,-1300 809,-1300 809,-1350"/>
<text text-anchor="middle" x="657" y="-1335.6" font-family="Times,serif" font-size="13.00">github.com/jmhodges/howsmyssl/tls.(*listener).Accept</text>
<text text-anchor="middle" x="657" y="-1321.6" font-family="Times,serif" font-size="13.00">683(36.47%)</text>
<text text-anchor="middle" x="657" y="-1307.6" font-family="Times,serif" font-size="13.00">of 8875(100%)</text>
</a>
</g>
</g>
<!-- NN10_0 -->
<g id="node22" class="node"><title>NN10_0</title>
<g id="a_node22"><a xlink:title="683">
<polygon fill="#f8f8f8" stroke="black" points="621,-1249 571,-1249 567,-1245 567,-1213 617,-1213 621,-1217 621,-1249"/>
<polyline fill="none" stroke="black" points="617,-1245 567,-1245 "/>
<polyline fill="none" stroke="black" points="617,-1245 617,-1213 "/>
<polyline fill="none" stroke="black" points="617,-1245 621,-1249 "/>
<text text-anchor="middle" x="594" y="-1229.1" font-family="Times,serif" font-size="8.00">768B</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;NN10_0 -->
<g id="edge11" class="edge"><title>N10&#45;&gt;NN10_0</title>
<g id="a_edge11"><a xlink:title=" 683">
<path fill="none" stroke="black" d="M632.178,-1299.73C627.153,-1294.16 622.145,-1288.09 618,-1282 613.067,-1274.76 608.609,-1266.35 604.911,-1258.51"/>
<polygon fill="black" stroke="black" points="608.089,-1257.05 600.796,-1249.36 601.704,-1259.92 608.089,-1257.05"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title=" 683">
<text text-anchor="middle" x="630.5" y="-1270.8" font-family="Times,serif" font-size="14.00"> 683</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node53" class="node"><title>N40</title>
<g id="a_node53"><a xlink:title="net.(*TCPListener).Accept (8192)">
<polygon fill="#f8f8f8" stroke="black" points="708.5,-1162 605.5,-1162 605.5,-1126 708.5,-1126 708.5,-1162"/>
<text text-anchor="middle" x="657" y="-1146.6" font-family="Times,serif" font-size="8.00">net.(*TCPListener).Accept</text>
<text text-anchor="middle" x="657" y="-1137.6" font-family="Times,serif" font-size="8.00">0 of 8192(100%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N40 -->
<g id="edge36" class="edge"><title>N10&#45;&gt;N40</title>
<g id="a_edge36"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*listener).Accept &#45;&gt; net.(*TCPListener).Accept (8192)">
<path fill="none" stroke="black" stroke-width="22" d="M657,-1299.86C657,-1266.79 657,-1207.56 657,-1172.72"/>
<polygon fill="black" stroke="black" stroke-width="22" points="676.25,-1172.33 657,-1162.33 637.75,-1172.33 676.25,-1172.33"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*listener).Accept &#45;&gt; net.(*TCPListener).Accept (8192)">
<text text-anchor="middle" x="673" y="-1227.3" font-family="Times,serif" font-size="14.00"> 8192</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node23" class="node"><title>N11</title>
<g id="a_node23"><a xlink:title="regexp.(*bitState).reset (16)">
<polygon fill="#f8f8f8" stroke="black" points="2058,-319 1958,-319 1958,-283 2058,-283 2058,-319"/>
<text text-anchor="middle" x="2008" y="-303.8" font-family="Times,serif" font-size="9.00">regexp.(*bitState).reset</text>
<text text-anchor="middle" x="2008" y="-293.8" font-family="Times,serif" font-size="9.00">16(0.85%)</text>
</a>
</g>
</g>
<!-- NN11_0 -->
<g id="node24" class="node"><title>NN11_0</title>
<g id="a_node24"><a xlink:title="16">
<polygon fill="#f8f8f8" stroke="black" points="2035,-220 1985,-220 1981,-216 1981,-184 2031,-184 2035,-188 2035,-220"/>
<polyline fill="none" stroke="black" points="2031,-216 1981,-216 "/>
<polyline fill="none" stroke="black" points="2031,-216 2031,-184 "/>
<polyline fill="none" stroke="black" points="2031,-216 2035,-220 "/>
<text text-anchor="middle" x="2008" y="-200.1" font-family="Times,serif" font-size="8.00">32kB</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;NN11_0 -->
<g id="edge12" class="edge"><title>N11&#45;&gt;NN11_0</title>
<g id="a_edge12"><a xlink:title=" 16">
<path fill="none" stroke="black" d="M2008,-282.658C2008,-268.175 2008,-247.263 2008,-230.499"/>
<polygon fill="black" stroke="black" points="2011.5,-230.191 2008,-220.192 2004.5,-230.192 2011.5,-230.191"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title=" 16">
<text text-anchor="middle" x="2017" y="-241.8" font-family="Times,serif" font-size="14.00"> 16</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node25" class="node"><title>N12</title>
<g id="a_node25"><a xlink:title="bufio.(*Reader).ReadLine (23361)">
<polygon fill="#f8f8f8" stroke="black" points="1000,-1249 900,-1249 900,-1213 1000,-1213 1000,-1249"/>
<text text-anchor="middle" x="950" y="-1233.6" font-family="Times,serif" font-size="8.00">bufio.(*Reader).ReadLine</text>
<text text-anchor="middle" x="950" y="-1224.6" font-family="Times,serif" font-size="8.00">0 of 23361(100%)</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node26" class="node"><title>N13</title>
<g id="a_node26"><a xlink:title="bufio.(*Reader).ReadSlice (23361)">
<polygon fill="#f8f8f8" stroke="black" points="1000.5,-1162 899.5,-1162 899.5,-1126 1000.5,-1126 1000.5,-1162"/>
<text text-anchor="middle" x="950" y="-1146.6" font-family="Times,serif" font-size="8.00">bufio.(*Reader).ReadSlice</text>
<text text-anchor="middle" x="950" y="-1137.6" font-family="Times,serif" font-size="8.00">0 of 23361(100%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N13 -->
<g id="edge14" class="edge"><title>N12&#45;&gt;N13</title>
<g id="a_edge14"><a xlink:title="bufio.(*Reader).ReadLine &#45;&gt; bufio.(*Reader).ReadSlice (23361)">
<path fill="none" stroke="black" stroke-width="63" d="M950,-1212.8C950,-1201.16 950,-1185.55 950,-1172.24"/>
<polygon fill="black" stroke="black" stroke-width="63" points="1005.13,-1172.17 950,-1162.18 894.875,-1172.18 1005.13,-1172.17"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="bufio.(*Reader).ReadLine &#45;&gt; bufio.(*Reader).ReadSlice (23361)">
<text text-anchor="middle" x="969.5" y="-1183.8" font-family="Times,serif" font-size="14.00"> 23361</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node27" class="node"><title>N14</title>
<g id="a_node27"><a xlink:title="bufio.(*Reader).fill (23361)">
<polygon fill="#f8f8f8" stroke="black" points="989,-1075 911,-1075 911,-1039 989,-1039 989,-1075"/>
<text text-anchor="middle" x="950" y="-1059.6" font-family="Times,serif" font-size="8.00">bufio.(*Reader).fill</text>
<text text-anchor="middle" x="950" y="-1050.6" font-family="Times,serif" font-size="8.00">0 of 23361(100%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N14 -->
<g id="edge15" class="edge"><title>N13&#45;&gt;N14</title>
<g id="a_edge15"><a xlink:title="bufio.(*Reader).ReadSlice &#45;&gt; bufio.(*Reader).fill (23361)">
<path fill="none" stroke="black" stroke-width="63" d="M950,-1125.8C950,-1114.16 950,-1098.55 950,-1085.24"/>
<polygon fill="black" stroke="black" stroke-width="63" points="1005.13,-1085.17 950,-1075.18 894.875,-1085.18 1005.13,-1085.17"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="bufio.(*Reader).ReadSlice &#45;&gt; bufio.(*Reader).fill (23361)">
<text text-anchor="middle" x="969.5" y="-1096.8" font-family="Times,serif" font-size="14.00"> 23361</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node61" class="node"><title>N48</title>
<g id="a_node61"><a xlink:title="net/http.(*connReader).Read (23361)">
<polygon fill="#f8f8f8" stroke="black" points="1004.5,-988 895.5,-988 895.5,-952 1004.5,-952 1004.5,-988"/>
<text text-anchor="middle" x="950" y="-972.6" font-family="Times,serif" font-size="8.00">net/http.(*connReader).Read</text>
<text text-anchor="middle" x="950" y="-963.6" font-family="Times,serif" font-size="8.00">0 of 23361(100%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N48 -->
<g id="edge16" class="edge"><title>N14&#45;&gt;N48</title>
<g id="a_edge16"><a xlink:title="bufio.(*Reader).fill &#45;&gt; net/http.(*connReader).Read (23361)">
<path fill="none" stroke="black" stroke-width="63" d="M950,-1038.8C950,-1027.16 950,-1011.55 950,-998.237"/>
<polygon fill="black" stroke="black" stroke-width="63" points="1005.13,-998.175 950,-988.175 894.875,-998.176 1005.13,-998.175"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="bufio.(*Reader).fill &#45;&gt; net/http.(*connReader).Read (23361)">
<text text-anchor="middle" x="969.5" y="-1009.8" font-family="Times,serif" font-size="14.00"> 23361</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node28" class="node"><title>N15</title>
<g id="a_node28"><a xlink:title="crypto/cipher.NewGCM (1820)">
<polygon fill="#f8f8f8" stroke="black" points="185,-319 91,-319 91,-283 185,-283 185,-319"/>
<text text-anchor="middle" x="138" y="-303.6" font-family="Times,serif" font-size="8.00">crypto/cipher.NewGCM</text>
<text text-anchor="middle" x="138" y="-294.6" font-family="Times,serif" font-size="8.00">0 of 1820(97.17%)</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node29" class="node"><title>N16</title>
<g id="a_node29"><a xlink:title="crypto/cipher.NewGCMWithNonceSize (1820)">
<polygon fill="#f8f8f8" stroke="black" points="210.5,-220 65.5,-220 65.5,-184 210.5,-184 210.5,-220"/>
<text text-anchor="middle" x="138" y="-204.6" font-family="Times,serif" font-size="8.00">crypto/cipher.NewGCMWithNonceSize</text>
<text text-anchor="middle" x="138" y="-195.6" font-family="Times,serif" font-size="8.00">0 of 1820(97.17%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N16 -->
<g id="edge48" class="edge"><title>N15&#45;&gt;N16</title>
<g id="a_edge48"><a xlink:title="crypto/cipher.NewGCM &#45;&gt; crypto/cipher.NewGCMWithNonceSize (1820)">
<path fill="none" stroke="black" stroke-width="5" d="M138,-282.658C138,-268.175 138,-247.263 138,-230.499"/>
<polygon fill="black" stroke="black" stroke-width="5" points="142.375,-230.191 138,-220.192 133.625,-230.192 142.375,-230.191"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="crypto/cipher.NewGCM &#45;&gt; crypto/cipher.NewGCMWithNonceSize (1820)">
<text text-anchor="middle" x="154" y="-241.8" font-family="Times,serif" font-size="14.00"> 1820</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N6 -->
<g id="edge49" class="edge"><title>N16&#45;&gt;N6</title>
<g id="a_edge49"><a xlink:title="crypto/cipher.NewGCMWithNonceSize &#45;&gt; crypto/aes.(*aesCipherGCM).NewGCM (1820)">
<path fill="none" stroke="black" stroke-width="5" d="M138,-183.647C138,-171.924 138,-156.114 138,-142.237"/>
<polygon fill="black" stroke="black" stroke-width="5" points="142.375,-142.101 138,-132.101 133.625,-142.101 142.375,-142.101"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="crypto/cipher.NewGCMWithNonceSize &#45;&gt; crypto/aes.(*aesCipherGCM).NewGCM (1820)">
<text text-anchor="middle" x="154" y="-154.8" font-family="Times,serif" font-size="14.00"> 1820</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node30" class="node"><title>N17</title>
<g id="a_node30"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*Conn).ServerHandshake (23361)">
<polygon fill="#f8f8f8" stroke="black" points="1060.5,-715 839.5,-715 839.5,-679 1060.5,-679 1060.5,-715"/>
<text text-anchor="middle" x="950" y="-699.6" font-family="Times,serif" font-size="8.00">github.com/jmhodges/howsmyssl/tls.(*Conn).ServerHandshake</text>
<text text-anchor="middle" x="950" y="-690.6" font-family="Times,serif" font-size="8.00">0 of 23361(100%)</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node33" class="node"><title>N20</title>
<g id="a_node33"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*Conn).serverHandshake (23361)">
<polygon fill="#f8f8f8" stroke="black" points="1059.5,-616 840.5,-616 840.5,-580 1059.5,-580 1059.5,-616"/>
<text text-anchor="middle" x="950" y="-600.6" font-family="Times,serif" font-size="8.00">github.com/jmhodges/howsmyssl/tls.(*Conn).serverHandshake</text>
<text text-anchor="middle" x="950" y="-591.6" font-family="Times,serif" font-size="8.00">0 of 23361(100%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N20 -->
<g id="edge17" class="edge"><title>N17&#45;&gt;N20</title>
<g id="a_edge17"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*Conn).ServerHandshake &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*Conn).serverHandshake (23361)">
<path fill="none" stroke="black" stroke-width="63" d="M950,-678.658C950,-664.175 950,-643.263 950,-626.499"/>
<polygon fill="black" stroke="black" stroke-width="63" points="1005.13,-626.191 950,-616.192 894.875,-626.192 1005.13,-626.191"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*Conn).ServerHandshake &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*Conn).serverHandshake (23361)">
<text text-anchor="middle" x="969.5" y="-637.8" font-family="Times,serif" font-size="14.00"> 23361</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node31" class="node"><title>N18</title>
<g id="a_node31"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*Conn).readHandshake (10242)">
<polygon fill="#f8f8f8" stroke="black" points="1057,-430 843,-430 843,-394 1057,-394 1057,-430"/>
<text text-anchor="middle" x="950" y="-414.6" font-family="Times,serif" font-size="8.00">github.com/jmhodges/howsmyssl/tls.(*Conn).readHandshake</text>
<text text-anchor="middle" x="950" y="-405.6" font-family="Times,serif" font-size="8.00">0 of 10242(100%)</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N1 -->
<g id="edge34" class="edge"><title>N18&#45;&gt;N1</title>
<g id="a_edge34"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*Conn).readHandshake &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*ClientHelloMsg).unmarshal (8192)">
<path fill="none" stroke="black" stroke-width="22" d="M950,-393.969C950,-379.889 950,-359.342 950,-341.238"/>
<polygon fill="black" stroke="black" stroke-width="22" points="969.25,-341.21 950,-331.21 930.75,-341.21 969.25,-341.21"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*Conn).readHandshake &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*ClientHelloMsg).unmarshal (8192)">
<text text-anchor="middle" x="966" y="-352.8" font-family="Times,serif" font-size="14.00"> 8192</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node32" class="node"><title>N19</title>
<g id="a_node32"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*Conn).readRecord (2050)">
<polygon fill="#f8f8f8" stroke="black" points="600.5,-319 399.5,-319 399.5,-283 600.5,-283 600.5,-319"/>
<text text-anchor="middle" x="500" y="-303.6" font-family="Times,serif" font-size="8.00">github.com/jmhodges/howsmyssl/tls.(*Conn).readRecord</text>
<text text-anchor="middle" x="500" y="-294.6" font-family="Times,serif" font-size="8.00">0 of 2050(100%)</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N19 -->
<g id="edge45" class="edge"><title>N18&#45;&gt;N19</title>
<g id="a_edge45"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*Conn).readHandshake &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*Conn).readRecord (2050)">
<path fill="none" stroke="black" stroke-width="6" d="M874.909,-393.937C805.922,-378.117 700.904,-353.673 610,-331 598.055,-328.021 585.405,-324.773 573.101,-321.564"/>
<polygon fill="black" stroke="black" stroke-width="6" points="574.333,-316.459 563.329,-319.004 571.672,-326.617 574.333,-316.459"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*Conn).readHandshake &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*Conn).readRecord (2050)">
<text text-anchor="middle" x="757" y="-352.8" font-family="Times,serif" font-size="14.00"> 2050</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node38" class="node"><title>N25</title>
<g id="a_node38"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*block).readFromUntil (2050)">
<polygon fill="#f8f8f8" stroke="black" points="606,-220 394,-220 394,-184 606,-184 606,-220"/>
<text text-anchor="middle" x="500" y="-204.6" font-family="Times,serif" font-size="8.00">github.com/jmhodges/howsmyssl/tls.(*block).readFromUntil</text>
<text text-anchor="middle" x="500" y="-195.6" font-family="Times,serif" font-size="8.00">0 of 2050(100%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N25 -->
<g id="edge46" class="edge"><title>N19&#45;&gt;N25</title>
<g id="a_edge46"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*Conn).readRecord &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*block).readFromUntil (2050)">
<path fill="none" stroke="black" stroke-width="6" d="M500,-282.658C500,-268.175 500,-247.263 500,-230.499"/>
<polygon fill="black" stroke="black" stroke-width="6" points="505.25,-230.191 500,-220.192 494.75,-230.192 505.25,-230.191"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*Conn).readRecord &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*block).readFromUntil (2050)">
<text text-anchor="middle" x="516" y="-241.8" font-family="Times,serif" font-size="14.00"> 2050</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node35" class="node"><title>N22</title>
<g id="a_node35"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*ServerHandshakeState).doFullHandshake (8320)">
<polygon fill="#f8f8f8" stroke="black" points="1401,-529 1125,-529 1125,-493 1401,-493 1401,-529"/>
<text text-anchor="middle" x="1263" y="-513.6" font-family="Times,serif" font-size="8.00">github.com/jmhodges/howsmyssl/tls.(*ServerHandshakeState).doFullHandshake</text>
<text text-anchor="middle" x="1263" y="-504.6" font-family="Times,serif" font-size="8.00">0 of 8320(100%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N22 -->
<g id="edge33" class="edge"><title>N20&#45;&gt;N22</title>
<g id="a_edge33"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*Conn).serverHandshake &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*ServerHandshakeState).doFullHandshake (8320)">
<path fill="none" stroke="black" stroke-width="23" d="M1012.96,-579.901C1064.22,-565.981 1136.62,-546.319 1190.33,-531.733"/>
<polygon fill="black" stroke="black" stroke-width="23" points="1195.76,-551.114 1200.14,-529.071 1185.21,-512.271 1195.76,-551.114"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*Conn).serverHandshake &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*ServerHandshakeState).doFullHandshake (8320)">
<text text-anchor="middle" x="1142" y="-550.8" font-family="Times,serif" font-size="14.00"> 8320</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node36" class="node"><title>N23</title>
<g id="a_node36"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*ServerHandshakeState).establishKeys (4799)">
<polygon fill="#f8f8f8" stroke="black" points="466,-529 202,-529 202,-493 466,-493 466,-529"/>
<text text-anchor="middle" x="334" y="-513.6" font-family="Times,serif" font-size="8.00">github.com/jmhodges/howsmyssl/tls.(*ServerHandshakeState).establishKeys</text>
<text text-anchor="middle" x="334" y="-504.6" font-family="Times,serif" font-size="8.00">0 of 4799(100%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N23 -->
<g id="edge42" class="edge"><title>N20&#45;&gt;N23</title>
<g id="a_edge42"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*Conn).serverHandshake &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*ServerHandshakeState).establishKeys (4799)">
<path fill="none" stroke="black" stroke-width="13" d="M840.227,-581.853C735.888,-567.455 578.781,-545.777 467.298,-530.393"/>
<polygon fill="black" stroke="black" stroke-width="13" points="468.793,-519.117 457.332,-529.018 465.683,-541.653 468.793,-519.117"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*Conn).serverHandshake &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*ServerHandshakeState).establishKeys (4799)">
<text text-anchor="middle" x="695" y="-550.8" font-family="Times,serif" font-size="14.00"> 4799</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node37" class="node"><title>N24</title>
<g id="a_node37"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*ServerHandshakeState).readClientHello (10242)">
<polygon fill="#f8f8f8" stroke="black" points="1085,-529 815,-529 815,-493 1085,-493 1085,-529"/>
<text text-anchor="middle" x="950" y="-513.6" font-family="Times,serif" font-size="8.00">github.com/jmhodges/howsmyssl/tls.(*ServerHandshakeState).readClientHello</text>
<text text-anchor="middle" x="950" y="-504.6" font-family="Times,serif" font-size="8.00">0 of 10242(100%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N24 -->
<g id="edge26" class="edge"><title>N20&#45;&gt;N24</title>
<g id="a_edge26"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*Conn).serverHandshake &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*ServerHandshakeState).readClientHello (10242)">
<path fill="none" stroke="black" stroke-width="28" d="M950,-579.799C950,-568.163 950,-552.548 950,-539.237"/>
<polygon fill="black" stroke="black" stroke-width="28" points="974.5,-539.175 950,-529.175 925.5,-539.176 974.5,-539.175"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*Conn).serverHandshake &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*ServerHandshakeState).readClientHello (10242)">
<text text-anchor="middle" x="969.5" y="-550.8" font-family="Times,serif" font-size="14.00"> 10242</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node34" class="node"><title>N21</title>
<g id="a_node34"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*Conn).writeRecord (128)">
<polygon fill="#f8f8f8" stroke="black" points="1935,-430 1731,-430 1731,-394 1935,-394 1935,-430"/>
<text text-anchor="middle" x="1833" y="-414.6" font-family="Times,serif" font-size="8.00">github.com/jmhodges/howsmyssl/tls.(*Conn).writeRecord</text>
<text text-anchor="middle" x="1833" y="-405.6" font-family="Times,serif" font-size="8.00">0 of 128(6.83%)</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node39" class="node"><title>N26</title>
<g id="a_node39"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*block).resize (128)">
<polygon fill="#f8f8f8" stroke="black" points="1698.5,-319 1515.5,-319 1515.5,-283 1698.5,-283 1698.5,-319"/>
<text text-anchor="middle" x="1607" y="-303.6" font-family="Times,serif" font-size="8.00">github.com/jmhodges/howsmyssl/tls.(*block).resize</text>
<text text-anchor="middle" x="1607" y="-294.6" font-family="Times,serif" font-size="8.00">0 of 128(6.83%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N26 -->
<g id="edge58" class="edge"><title>N21&#45;&gt;N26</title>
<g id="a_edge58"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*Conn).writeRecord &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*block).resize (128)">
<path fill="none" stroke="black" d="M1797.69,-393.969C1758.25,-374.947 1694.34,-344.122 1651.51,-323.465"/>
<polygon fill="black" stroke="black" points="1652.96,-320.283 1642.44,-319.091 1649.92,-326.588 1652.96,-320.283"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*Conn).writeRecord &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*block).resize (128)">
<text text-anchor="middle" x="1745.5" y="-352.8" font-family="Times,serif" font-size="14.00"> 128</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N2 -->
<g id="edge35" class="edge"><title>N22&#45;&gt;N2</title>
<g id="a_edge35"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*ServerHandshakeState).doFullHandshake &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*serverHelloMsg).marshal (8192)">
<path fill="none" stroke="black" stroke-width="22" d="M1286.12,-492.882C1302.85,-480.494 1326.04,-463.319 1346.64,-448.068"/>
<polygon fill="black" stroke="black" stroke-width="22" points="1358.1,-463.534 1354.68,-442.112 1335.19,-432.593 1358.1,-463.534"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*ServerHandshakeState).doFullHandshake &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*serverHelloMsg).marshal (8192)">
<text text-anchor="middle" x="1345" y="-463.8" font-family="Times,serif" font-size="14.00"> 8192</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N21 -->
<g id="edge59" class="edge"><title>N22&#45;&gt;N21</title>
<g id="a_edge59"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*ServerHandshakeState).doFullHandshake &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*Conn).writeRecord (128)">
<path fill="none" stroke="black" d="M1401.01,-493.525C1492.5,-481.631 1614.95,-463.846 1722,-442 1735.35,-439.276 1749.49,-435.937 1763.04,-432.507"/>
<polygon fill="black" stroke="black" points="1763.98,-435.881 1772.79,-430 1762.23,-429.101 1763.98,-435.881"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*ServerHandshakeState).doFullHandshake &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*Conn).writeRecord (128)">
<text text-anchor="middle" x="1634.5" y="-463.8" font-family="Times,serif" font-size="14.00"> 128</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node40" class="node"><title>N27</title>
<g id="a_node40"><a xlink:title="github.com/jmhodges/howsmyssl/tls.aeadAESGCM (1820)">
<polygon fill="#f8f8f8" stroke="black" points="230,-430 46,-430 46,-394 230,-394 230,-430"/>
<text text-anchor="middle" x="138" y="-414.6" font-family="Times,serif" font-size="8.00">github.com/jmhodges/howsmyssl/tls.aeadAESGCM</text>
<text text-anchor="middle" x="138" y="-405.6" font-family="Times,serif" font-size="8.00">0 of 1820(97.17%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N27 -->
<g id="edge50" class="edge"><title>N23&#45;&gt;N27</title>
<g id="a_edge50"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*ServerHandshakeState).establishKeys &#45;&gt; github.com/jmhodges/howsmyssl/tls.aeadAESGCM (1820)">
<path fill="none" stroke="black" stroke-width="5" d="M299.41,-492.882C266.623,-476.655 217.242,-452.217 181.737,-434.645"/>
<polygon fill="black" stroke="black" stroke-width="5" points="183.476,-430.625 172.573,-430.11 179.595,-438.467 183.476,-430.625"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*ServerHandshakeState).establishKeys &#45;&gt; github.com/jmhodges/howsmyssl/tls.aeadAESGCM (1820)">
<text text-anchor="middle" x="276" y="-463.8" font-family="Times,serif" font-size="14.00"> 1820</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node41" class="node"><title>N28</title>
<g id="a_node41"><a xlink:title="github.com/jmhodges/howsmyssl/tls.cipherAES (2979)">
<polygon fill="#f8f8f8" stroke="black" points="419.5,-430 248.5,-430 248.5,-394 419.5,-394 419.5,-430"/>
<text text-anchor="middle" x="334" y="-414.6" font-family="Times,serif" font-size="8.00">github.com/jmhodges/howsmyssl/tls.cipherAES</text>
<text text-anchor="middle" x="334" y="-405.6" font-family="Times,serif" font-size="8.00">0 of 2979(100%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N28 -->
<g id="edge43" class="edge"><title>N23&#45;&gt;N28</title>
<g id="a_edge43"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*ServerHandshakeState).establishKeys &#45;&gt; github.com/jmhodges/howsmyssl/tls.cipherAES (2979)">
<path fill="none" stroke="black" stroke-width="8" d="M334,-492.658C334,-478.175 334,-457.263 334,-440.499"/>
<polygon fill="black" stroke="black" stroke-width="8" points="341,-440.191 334,-430.192 327,-440.192 341,-440.191"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*ServerHandshakeState).establishKeys &#45;&gt; github.com/jmhodges/howsmyssl/tls.cipherAES (2979)">
<text text-anchor="middle" x="350" y="-463.8" font-family="Times,serif" font-size="14.00"> 2979</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N18 -->
<g id="edge27" class="edge"><title>N24&#45;&gt;N18</title>
<g id="a_edge27"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*ServerHandshakeState).readClientHello &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*Conn).readHandshake (10242)">
<path fill="none" stroke="black" stroke-width="28" d="M950,-492.658C950,-478.175 950,-457.263 950,-440.499"/>
<polygon fill="black" stroke="black" stroke-width="28" points="974.5,-440.191 950,-430.192 925.5,-440.192 974.5,-440.191"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*ServerHandshakeState).readClientHello &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*Conn).readHandshake (10242)">
<text text-anchor="middle" x="969.5" y="-463.8" font-family="Times,serif" font-size="14.00"> 10242</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N5 -->
<g id="edge47" class="edge"><title>N25&#45;&gt;N5</title>
<g id="a_edge47"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*block).readFromUntil &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*block).reserve (2050)">
<path fill="none" stroke="black" stroke-width="6" d="M500,-183.647C500,-172.168 500,-156.771 500,-143.107"/>
<polygon fill="black" stroke="black" stroke-width="6" points="505.25,-143.088 500,-133.088 494.75,-143.089 505.25,-143.088"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*block).readFromUntil &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*block).reserve (2050)">
<text text-anchor="middle" x="516" y="-154.8" font-family="Times,serif" font-size="14.00"> 2050</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N5 -->
<g id="edge60" class="edge"><title>N26&#45;&gt;N5</title>
<g id="a_edge60"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*block).resize &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*block).reserve (128)">
<path fill="none" stroke="black" d="M1521.28,-282.99C1401.65,-259.477 1177.7,-216.291 986,-184 879.859,-166.121 760.309,-148.136 666.339,-134.491"/>
<polygon fill="black" stroke="black" points="666.57,-130.988 656.171,-133.017 665.566,-137.915 666.57,-130.988"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="github.com/jmhodges/howsmyssl/tls.(*block).resize &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*block).reserve (128)">
<text text-anchor="middle" x="1198.5" y="-198.3" font-family="Times,serif" font-size="14.00"> 128</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N15 -->
<g id="edge51" class="edge"><title>N27&#45;&gt;N15</title>
<g id="a_edge51"><a xlink:title="github.com/jmhodges/howsmyssl/tls.aeadAESGCM &#45;&gt; crypto/cipher.NewGCM (1820)">
<path fill="none" stroke="black" stroke-width="5" d="M138,-393.969C138,-376.712 138,-349.743 138,-329.462"/>
<polygon fill="black" stroke="black" stroke-width="5" points="142.375,-329.271 138,-319.271 133.625,-329.271 142.375,-329.271"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="github.com/jmhodges/howsmyssl/tls.aeadAESGCM &#45;&gt; crypto/cipher.NewGCM (1820)">
<text text-anchor="middle" x="154" y="-352.8" font-family="Times,serif" font-size="14.00"> 1820</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N4 -->
<g id="edge44" class="edge"><title>N28&#45;&gt;N4</title>
<g id="a_edge44"><a xlink:title="github.com/jmhodges/howsmyssl/tls.cipherAES &#45;&gt; crypto/aes.NewCipher (2979)">
<path fill="none" stroke="black" stroke-width="8" d="M327.438,-393.969C321.359,-378.192 312.151,-354.297 304.645,-334.818"/>
<polygon fill="black" stroke="black" stroke-width="8" points="311.138,-332.198 301.01,-325.383 298.074,-337.231 311.138,-332.198"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="github.com/jmhodges/howsmyssl/tls.cipherAES &#45;&gt; crypto/aes.NewCipher (2979)">
<text text-anchor="middle" x="332" y="-352.8" font-family="Times,serif" font-size="14.00"> 2979</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node42" class="node"><title>N29</title>
<g id="a_node42"><a xlink:title="main.(*conn).Read (23361)">
<polygon fill="#f8f8f8" stroke="black" points="989,-901 911,-901 911,-865 989,-865 989,-901"/>
<text text-anchor="middle" x="950" y="-885.6" font-family="Times,serif" font-size="8.00">main.(*conn).Read</text>
<text text-anchor="middle" x="950" y="-876.6" font-family="Times,serif" font-size="8.00">0 of 23361(100%)</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node43" class="node"><title>N30</title>
<g id="a_node43"><a xlink:title="main.(*conn).handshake (23361)">
<polygon fill="#f8f8f8" stroke="black" points="997.5,-814 902.5,-814 902.5,-778 997.5,-778 997.5,-814"/>
<text text-anchor="middle" x="950" y="-798.6" font-family="Times,serif" font-size="8.00">main.(*conn).handshake</text>
<text text-anchor="middle" x="950" y="-789.6" font-family="Times,serif" font-size="8.00">0 of 23361(100%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N30 -->
<g id="edge18" class="edge"><title>N29&#45;&gt;N30</title>
<g id="a_edge18"><a xlink:title="main.(*conn).Read &#45;&gt; main.(*conn).handshake (23361)">
<path fill="none" stroke="black" stroke-width="63" d="M950,-864.799C950,-853.163 950,-837.548 950,-824.237"/>
<polygon fill="black" stroke="black" stroke-width="63" points="1005.13,-824.175 950,-814.175 894.875,-824.176 1005.13,-824.175"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="main.(*conn).Read &#45;&gt; main.(*conn).handshake (23361)">
<text text-anchor="middle" x="969.5" y="-835.8" font-family="Times,serif" font-size="14.00"> 23361</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N17 -->
<g id="edge19" class="edge"><title>N30&#45;&gt;N17</title>
<g id="a_edge19"><a xlink:title="main.(*conn).handshake &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*Conn).ServerHandshake (23361)">
<path fill="none" stroke="black" stroke-width="63" d="M950,-777.658C950,-763.175 950,-742.263 950,-725.499"/>
<polygon fill="black" stroke="black" stroke-width="63" points="1005.13,-725.191 950,-715.192 894.875,-725.192 1005.13,-725.191"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="main.(*conn).handshake &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*Conn).ServerHandshake (23361)">
<text text-anchor="middle" x="969.5" y="-748.8" font-family="Times,serif" font-size="14.00"> 23361</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node44" class="node"><title>N31</title>
<g id="a_node44"><a xlink:title="main.(*listener).Accept (8875)">
<polygon fill="#f8f8f8" stroke="black" points="703,-1440 611,-1440 611,-1404 703,-1404 703,-1440"/>
<text text-anchor="middle" x="657" y="-1424.6" font-family="Times,serif" font-size="8.00">main.(*listener).Accept</text>
<text text-anchor="middle" x="657" y="-1415.6" font-family="Times,serif" font-size="8.00">0 of 8875(100%)</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N10 -->
<g id="edge28" class="edge"><title>N31&#45;&gt;N10</title>
<g id="a_edge28"><a xlink:title="main.(*listener).Accept &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*listener).Accept (8875)">
<path fill="none" stroke="black" stroke-width="24" d="M657,-1403.58C657,-1391.51 657,-1375.04 657,-1360.38"/>
<polygon fill="black" stroke="black" stroke-width="24" points="678,-1360.11 657,-1350.11 636,-1360.11 678,-1360.11"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="main.(*listener).Accept &#45;&gt; github.com/jmhodges/howsmyssl/tls.(*listener).Accept (8875)">
<text text-anchor="middle" x="673" y="-1371.8" font-family="Times,serif" font-size="14.00"> 8875</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node45" class="node"><title>N32</title>
<g id="a_node45"><a xlink:title="main.(*logHandler).ServeHTTP (16)">
<polygon fill="#f8f8f8" stroke="black" points="1176,-1343 1056,-1343 1056,-1307 1176,-1307 1176,-1343"/>
<text text-anchor="middle" x="1116" y="-1327.6" font-family="Times,serif" font-size="8.00">main.(*logHandler).ServeHTTP</text>
<text text-anchor="middle" x="1116" y="-1318.6" font-family="Times,serif" font-size="8.00">0 of 16(0.85%)</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node49" class="node"><title>N36</title>
<g id="a_node49"><a xlink:title="main.logHandler.ServeHTTP (16)">
<polygon fill="#f8f8f8" stroke="black" points="1185.5,-1249 1074.5,-1249 1074.5,-1213 1185.5,-1213 1185.5,-1249"/>
<text text-anchor="middle" x="1130" y="-1233.6" font-family="Times,serif" font-size="8.00">main.logHandler.ServeHTTP</text>
<text text-anchor="middle" x="1130" y="-1224.6" font-family="Times,serif" font-size="8.00">0 of 16(0.85%)</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N36 -->
<g id="edge61" class="edge"><title>N32&#45;&gt;N36</title>
<g id="a_edge61"><a xlink:title="main.(*logHandler).ServeHTTP &#45;&gt; main.logHandler.ServeHTTP (16)">
<path fill="none" stroke="black" d="M1118.63,-1306.7C1120.67,-1293.33 1123.52,-1274.59 1125.86,-1259.22"/>
<polygon fill="black" stroke="black" points="1129.33,-1259.64 1127.38,-1249.23 1122.41,-1258.59 1129.33,-1259.64"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="main.(*logHandler).ServeHTTP &#45;&gt; main.logHandler.ServeHTTP (16)">
<text text-anchor="middle" x="1134" y="-1270.8" font-family="Times,serif" font-size="14.00"> 16</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node46" class="node"><title>N33</title>
<g id="a_node46"><a xlink:title="main.(*protoHandler).ServeHTTP (16)">
<polygon fill="#f8f8f8" stroke="black" points="1172.5,-1530 1045.5,-1530 1045.5,-1494 1172.5,-1494 1172.5,-1530"/>
<text text-anchor="middle" x="1109" y="-1514.6" font-family="Times,serif" font-size="8.00">main.(*protoHandler).ServeHTTP</text>
<text text-anchor="middle" x="1109" y="-1505.6" font-family="Times,serif" font-size="8.00">0 of 16(0.85%)</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node51" class="node"><title>N38</title>
<g id="a_node51"><a xlink:title="main.protoHandler.ServeHTTP (16)">
<polygon fill="#f8f8f8" stroke="black" points="1173.5,-1440 1056.5,-1440 1056.5,-1404 1173.5,-1404 1173.5,-1440"/>
<text text-anchor="middle" x="1115" y="-1424.6" font-family="Times,serif" font-size="8.00">main.protoHandler.ServeHTTP</text>
<text text-anchor="middle" x="1115" y="-1415.6" font-family="Times,serif" font-size="8.00">0 of 16(0.85%)</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N38 -->
<g id="edge62" class="edge"><title>N33&#45;&gt;N38</title>
<g id="a_edge62"><a xlink:title="main.(*protoHandler).ServeHTTP &#45;&gt; main.protoHandler.ServeHTTP (16)">
<path fill="none" stroke="black" d="M1110.19,-1493.61C1111.03,-1481.24 1112.18,-1464.37 1113.14,-1450.22"/>
<polygon fill="black" stroke="black" points="1116.65,-1450.27 1113.84,-1440.05 1109.67,-1449.79 1116.65,-1450.27"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="main.(*protoHandler).ServeHTTP &#45;&gt; main.protoHandler.ServeHTTP (16)">
<text text-anchor="middle" x="1122" y="-1464.8" font-family="Times,serif" font-size="14.00"> 16</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node47" class="node"><title>N34</title>
<g id="a_node47"><a xlink:title="main.handleAPI (16)">
<polygon fill="#f8f8f8" stroke="black" points="1168.5,-988 1099.5,-988 1099.5,-952 1168.5,-952 1168.5,-988"/>
<text text-anchor="middle" x="1134" y="-972.6" font-family="Times,serif" font-size="8.00">main.handleAPI</text>
<text text-anchor="middle" x="1134" y="-963.6" font-family="Times,serif" font-size="8.00">0 of 16(0.85%)</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node48" class="node"><title>N35</title>
<g id="a_node48"><a xlink:title="main.hijackHandle (16)">
<polygon fill="#f8f8f8" stroke="black" points="1172.5,-901 1095.5,-901 1095.5,-865 1172.5,-865 1172.5,-901"/>
<text text-anchor="middle" x="1134" y="-885.6" font-family="Times,serif" font-size="8.00">main.hijackHandle</text>
<text text-anchor="middle" x="1134" y="-876.6" font-family="Times,serif" font-size="8.00">0 of 16(0.85%)</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N35 -->
<g id="edge63" class="edge"><title>N34&#45;&gt;N35</title>
<g id="a_edge63"><a xlink:title="main.handleAPI &#45;&gt; main.hijackHandle (16)">
<path fill="none" stroke="black" d="M1134,-951.799C1134,-940.163 1134,-924.548 1134,-911.237"/>
<polygon fill="black" stroke="black" points="1137.5,-911.175 1134,-901.175 1130.5,-911.175 1137.5,-911.175"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="main.handleAPI &#45;&gt; main.hijackHandle (16)">
<text text-anchor="middle" x="1143" y="-922.8" font-family="Times,serif" font-size="14.00"> 16</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node52" class="node"><title>N39</title>
<g id="a_node52"><a xlink:title="main.renderJSON (16)">
<polygon fill="#f8f8f8" stroke="black" points="1171,-814 1097,-814 1097,-778 1171,-778 1171,-814"/>
<text text-anchor="middle" x="1134" y="-798.6" font-family="Times,serif" font-size="8.00">main.renderJSON</text>
<text text-anchor="middle" x="1134" y="-789.6" font-family="Times,serif" font-size="8.00">0 of 16(0.85%)</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N39 -->
<g id="edge64" class="edge"><title>N35&#45;&gt;N39</title>
<g id="a_edge64"><a xlink:title="main.hijackHandle &#45;&gt; main.renderJSON (16)">
<path fill="none" stroke="black" d="M1134,-864.799C1134,-853.163 1134,-837.548 1134,-824.237"/>
<polygon fill="black" stroke="black" points="1137.5,-824.175 1134,-814.175 1130.5,-824.175 1137.5,-824.175"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="main.hijackHandle &#45;&gt; main.renderJSON (16)">
<text text-anchor="middle" x="1143" y="-835.8" font-family="Times,serif" font-size="14.00"> 16</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node57" class="node"><title>N44</title>
<g id="a_node57"><a xlink:title="net/http.(*ServeMux).ServeHTTP (16)">
<polygon fill="#f8f8f8" stroke="black" points="1196,-1162 1070,-1162 1070,-1126 1196,-1126 1196,-1162"/>
<text text-anchor="middle" x="1133" y="-1146.6" font-family="Times,serif" font-size="8.00">net/http.(*ServeMux).ServeHTTP</text>
<text text-anchor="middle" x="1133" y="-1137.6" font-family="Times,serif" font-size="8.00">0 of 16(0.85%)</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N44 -->
<g id="edge65" class="edge"><title>N36&#45;&gt;N44</title>
<g id="a_edge65"><a xlink:title="main.logHandler.ServeHTTP &#45;&gt; net/http.(*ServeMux).ServeHTTP (16)">
<path fill="none" stroke="black" d="M1130.61,-1212.8C1131.02,-1201.16 1131.57,-1185.55 1132.04,-1172.24"/>
<polygon fill="black" stroke="black" points="1135.54,-1172.29 1132.39,-1162.18 1128.54,-1172.05 1135.54,-1172.29"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="main.logHandler.ServeHTTP &#45;&gt; net/http.(*ServeMux).ServeHTTP (16)">
<text text-anchor="middle" x="1141" y="-1183.8" font-family="Times,serif" font-size="14.00"> 16</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node50" class="node"><title>N37</title>
<g id="a_node50"><a xlink:title="main.main.func2 (8875)">
<polygon fill="#f8f8f8" stroke="black" points="812.5,-1704 741.5,-1704 741.5,-1668 812.5,-1668 812.5,-1704"/>
<text text-anchor="middle" x="777" y="-1688.6" font-family="Times,serif" font-size="8.00">main.main.func2</text>
<text text-anchor="middle" x="777" y="-1679.6" font-family="Times,serif" font-size="8.00">0 of 8875(100%)</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node63" class="node"><title>N50</title>
<g id="a_node63"><a xlink:title="net/http.Serve (8875)">
<polygon fill="#f8f8f8" stroke="black" points="692.5,-1617 621.5,-1617 621.5,-1581 692.5,-1581 692.5,-1617"/>
<text text-anchor="middle" x="657" y="-1601.6" font-family="Times,serif" font-size="8.00">net/http.Serve</text>
<text text-anchor="middle" x="657" y="-1592.6" font-family="Times,serif" font-size="8.00">0 of 8875(100%)</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N50 -->
<g id="edge29" class="edge"><title>N37&#45;&gt;N50</title>
<g id="a_edge29"><a xlink:title="main.main.func2 &#45;&gt; net/http.Serve (8875)">
<path fill="none" stroke="black" stroke-width="24" d="M752.716,-1667.8C734.499,-1654.9 709.376,-1637.1 689.439,-1622.98"/>
<polygon fill="black" stroke="black" stroke-width="24" points="701.546,-1605.82 681.248,-1617.18 677.269,-1640.09 701.546,-1605.82"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="main.main.func2 &#45;&gt; net/http.Serve (8875)">
<text text-anchor="middle" x="741" y="-1638.8" font-family="Times,serif" font-size="14.00"> 8875</text>
</a>
</g>
</g>
<!-- N38&#45;&gt;N32 -->
<g id="edge66" class="edge"><title>N38&#45;&gt;N32</title>
<g id="a_edge66"><a xlink:title="main.protoHandler.ServeHTTP &#45;&gt; main.(*logHandler).ServeHTTP (16)">
<path fill="none" stroke="black" d="M1115.18,-1403.58C1115.33,-1389.65 1115.54,-1369.86 1115.71,-1353.76"/>
<polygon fill="black" stroke="black" points="1119.21,-1353.35 1115.82,-1343.31 1112.21,-1353.28 1119.21,-1353.35"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="main.protoHandler.ServeHTTP &#45;&gt; main.(*logHandler).ServeHTTP (16)">
<text text-anchor="middle" x="1125" y="-1371.8" font-family="Times,serif" font-size="14.00"> 16</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node68" class="node"><title>N55</title>
<g id="a_node68"><a xlink:title="regexp.(*Regexp).ReplaceAll (16)">
<polygon fill="#f8f8f8" stroke="black" points="1271,-715 1159,-715 1159,-679 1271,-679 1271,-715"/>
<text text-anchor="middle" x="1215" y="-699.6" font-family="Times,serif" font-size="8.00">regexp.(*Regexp).ReplaceAll</text>
<text text-anchor="middle" x="1215" y="-690.6" font-family="Times,serif" font-size="8.00">0 of 16(0.85%)</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N55 -->
<g id="edge67" class="edge"><title>N39&#45;&gt;N55</title>
<g id="a_edge67"><a xlink:title="main.renderJSON &#45;&gt; regexp.(*Regexp).ReplaceAll (16)">
<path fill="none" stroke="black" d="M1148.48,-777.658C1161.15,-762.485 1179.71,-740.257 1194.01,-723.134"/>
<polygon fill="black" stroke="black" points="1196.92,-725.111 1200.64,-715.192 1191.55,-720.624 1196.92,-725.111"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="main.renderJSON &#45;&gt; regexp.(*Regexp).ReplaceAll (16)">
<text text-anchor="middle" x="1184" y="-748.8" font-family="Times,serif" font-size="14.00"> 16</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node54" class="node"><title>N41</title>
<g id="a_node54"><a xlink:title="net.(*TCPListener).AcceptTCP (8192)">
<polygon fill="#f8f8f8" stroke="black" points="716,-1075 598,-1075 598,-1039 716,-1039 716,-1075"/>
<text text-anchor="middle" x="657" y="-1059.6" font-family="Times,serif" font-size="8.00">net.(*TCPListener).AcceptTCP</text>
<text text-anchor="middle" x="657" y="-1050.6" font-family="Times,serif" font-size="8.00">0 of 8192(100%)</text>
</a>
</g>
</g>
<!-- N40&#45;&gt;N41 -->
<g id="edge37" class="edge"><title>N40&#45;&gt;N41</title>
<g id="a_edge37"><a xlink:title="net.(*TCPListener).Accept &#45;&gt; net.(*TCPListener).AcceptTCP (8192)">
<path fill="none" stroke="black" stroke-width="22" d="M657,-1125.8C657,-1114.16 657,-1098.55 657,-1085.24"/>
<polygon fill="black" stroke="black" stroke-width="22" points="676.25,-1085.18 657,-1075.18 637.75,-1085.18 676.25,-1085.18"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="net.(*TCPListener).Accept &#45;&gt; net.(*TCPListener).AcceptTCP (8192)">
<text text-anchor="middle" x="673" y="-1096.8" font-family="Times,serif" font-size="14.00"> 8192</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node55" class="node"><title>N42</title>
<g id="a_node55"><a xlink:title="net.(*netFD).accept (8192)">
<polygon fill="#f8f8f8" stroke="black" points="697,-988 617,-988 617,-952 697,-952 697,-988"/>
<text text-anchor="middle" x="657" y="-972.6" font-family="Times,serif" font-size="8.00">net.(*netFD).accept</text>
<text text-anchor="middle" x="657" y="-963.6" font-family="Times,serif" font-size="8.00">0 of 8192(100%)</text>
</a>
</g>
</g>
<!-- N41&#45;&gt;N42 -->
<g id="edge38" class="edge"><title>N41&#45;&gt;N42</title>
<g id="a_edge38"><a xlink:title="net.(*TCPListener).AcceptTCP &#45;&gt; net.(*netFD).accept (8192)">
<path fill="none" stroke="black" stroke-width="22" d="M657,-1038.8C657,-1027.16 657,-1011.55 657,-998.237"/>
<polygon fill="black" stroke="black" stroke-width="22" points="676.25,-998.175 657,-988.175 637.75,-998.176 676.25,-998.175"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="net.(*TCPListener).AcceptTCP &#45;&gt; net.(*netFD).accept (8192)">
<text text-anchor="middle" x="673" y="-1009.8" font-family="Times,serif" font-size="14.00"> 8192</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node56" class="node"><title>N43</title>
<g id="a_node56"><a xlink:title="net.accept (8192)">
<polygon fill="#f8f8f8" stroke="black" points="692.5,-901 621.5,-901 621.5,-865 692.5,-865 692.5,-901"/>
<text text-anchor="middle" x="657" y="-885.6" font-family="Times,serif" font-size="8.00">net.accept</text>
<text text-anchor="middle" x="657" y="-876.6" font-family="Times,serif" font-size="8.00">0 of 8192(100%)</text>
</a>
</g>
</g>
<!-- N42&#45;&gt;N43 -->
<g id="edge39" class="edge"><title>N42&#45;&gt;N43</title>
<g id="a_edge39"><a xlink:title="net.(*netFD).accept &#45;&gt; net.accept (8192)">
<path fill="none" stroke="black" stroke-width="22" d="M657,-951.799C657,-940.163 657,-924.548 657,-911.237"/>
<polygon fill="black" stroke="black" stroke-width="22" points="676.25,-911.175 657,-901.175 637.75,-911.176 676.25,-911.175"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="net.(*netFD).accept &#45;&gt; net.accept (8192)">
<text text-anchor="middle" x="673" y="-922.8" font-family="Times,serif" font-size="14.00"> 8192</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node77" class="node"><title>N64</title>
<g id="a_node77"><a xlink:title="syscall.Accept4 (8192)">
<polygon fill="#f8f8f8" stroke="black" points="692.5,-814 621.5,-814 621.5,-778 692.5,-778 692.5,-814"/>
<text text-anchor="middle" x="657" y="-798.6" font-family="Times,serif" font-size="8.00">syscall.Accept4</text>
<text text-anchor="middle" x="657" y="-789.6" font-family="Times,serif" font-size="8.00">0 of 8192(100%)</text>
</a>
</g>
</g>
<!-- N43&#45;&gt;N64 -->
<g id="edge40" class="edge"><title>N43&#45;&gt;N64</title>
<g id="a_edge40"><a xlink:title="net.accept &#45;&gt; syscall.Accept4 (8192)">
<path fill="none" stroke="black" stroke-width="22" d="M657,-864.799C657,-853.163 657,-837.548 657,-824.237"/>
<polygon fill="black" stroke="black" stroke-width="22" points="676.25,-824.175 657,-814.175 637.75,-824.176 676.25,-824.175"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="net.accept &#45;&gt; syscall.Accept4 (8192)">
<text text-anchor="middle" x="673" y="-835.8" font-family="Times,serif" font-size="14.00"> 8192</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node62" class="node"><title>N49</title>
<g id="a_node62"><a xlink:title="net/http.HandlerFunc.ServeHTTP (16)">
<polygon fill="#f8f8f8" stroke="black" points="1196.5,-1075 1071.5,-1075 1071.5,-1039 1196.5,-1039 1196.5,-1075"/>
<text text-anchor="middle" x="1134" y="-1059.6" font-family="Times,serif" font-size="8.00">net/http.HandlerFunc.ServeHTTP</text>
<text text-anchor="middle" x="1134" y="-1050.6" font-family="Times,serif" font-size="8.00">0 of 16(0.85%)</text>
</a>
</g>
</g>
<!-- N44&#45;&gt;N49 -->
<g id="edge68" class="edge"><title>N44&#45;&gt;N49</title>
<g id="a_edge68"><a xlink:title="net/http.(*ServeMux).ServeHTTP &#45;&gt; net/http.HandlerFunc.ServeHTTP (16)">
<path fill="none" stroke="black" d="M1133.2,-1125.8C1133.34,-1114.16 1133.52,-1098.55 1133.68,-1085.24"/>
<polygon fill="black" stroke="black" points="1137.18,-1085.22 1133.8,-1075.18 1130.18,-1085.13 1137.18,-1085.22"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="net/http.(*ServeMux).ServeHTTP &#45;&gt; net/http.HandlerFunc.ServeHTTP (16)">
<text text-anchor="middle" x="1143" y="-1096.8" font-family="Times,serif" font-size="14.00"> 16</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node58" class="node"><title>N45</title>
<g id="a_node58"><a xlink:title="net/http.(*Server).Serve (8875)">
<polygon fill="#f8f8f8" stroke="black" points="703.5,-1530 610.5,-1530 610.5,-1494 703.5,-1494 703.5,-1530"/>
<text text-anchor="middle" x="657" y="-1514.6" font-family="Times,serif" font-size="8.00">net/http.(*Server).Serve</text>
<text text-anchor="middle" x="657" y="-1505.6" font-family="Times,serif" font-size="8.00">0 of 8875(100%)</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N31 -->
<g id="edge30" class="edge"><title>N45&#45;&gt;N31</title>
<g id="a_edge30"><a xlink:title="net/http.(*Server).Serve &#45;&gt; main.(*listener).Accept (8875)">
<path fill="none" stroke="black" stroke-width="24" d="M657,-1493.61C657,-1481.24 657,-1464.37 657,-1450.22"/>
<polygon fill="black" stroke="black" stroke-width="24" points="678,-1450.05 657,-1440.05 636,-1450.05 678,-1450.05"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="net/http.(*Server).Serve &#45;&gt; main.(*listener).Accept (8875)">
<text text-anchor="middle" x="673" y="-1464.8" font-family="Times,serif" font-size="14.00"> 8875</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node59" class="node"><title>N46</title>
<g id="a_node59"><a xlink:title="net/http.(*conn).readRequest (23361)">
<polygon fill="#f8f8f8" stroke="black" points="1004.5,-1617 895.5,-1617 895.5,-1581 1004.5,-1581 1004.5,-1617"/>
<text text-anchor="middle" x="950" y="-1601.6" font-family="Times,serif" font-size="8.00">net/http.(*conn).readRequest</text>
<text text-anchor="middle" x="950" y="-1592.6" font-family="Times,serif" font-size="8.00">0 of 23361(100%)</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node64" class="node"><title>N51</title>
<g id="a_node64"><a xlink:title="net/http.readRequest (23361)">
<polygon fill="#f8f8f8" stroke="black" points="991,-1530 909,-1530 909,-1494 991,-1494 991,-1530"/>
<text text-anchor="middle" x="950" y="-1514.6" font-family="Times,serif" font-size="8.00">net/http.readRequest</text>
<text text-anchor="middle" x="950" y="-1505.6" font-family="Times,serif" font-size="8.00">0 of 23361(100%)</text>
</a>
</g>
</g>
<!-- N46&#45;&gt;N51 -->
<g id="edge20" class="edge"><title>N46&#45;&gt;N51</title>
<g id="a_edge20"><a xlink:title="net/http.(*conn).readRequest &#45;&gt; net/http.readRequest (23361)">
<path fill="none" stroke="black" stroke-width="63" d="M950,-1580.8C950,-1569.16 950,-1553.55 950,-1540.24"/>
<polygon fill="black" stroke="black" stroke-width="63" points="1005.13,-1540.17 950,-1530.18 894.875,-1540.18 1005.13,-1540.17"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="net/http.(*conn).readRequest &#45;&gt; net/http.readRequest (23361)">
<text text-anchor="middle" x="969.5" y="-1551.8" font-family="Times,serif" font-size="14.00"> 23361</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node60" class="node"><title>N47</title>
<g id="a_node60"><a xlink:title="net/http.(*conn).serve (24919)">
<polygon fill="#f8f8f8" stroke="black" points="993.5,-1704 906.5,-1704 906.5,-1668 993.5,-1668 993.5,-1704"/>
<text text-anchor="middle" x="950" y="-1688.6" font-family="Times,serif" font-size="8.00">net/http.(*conn).serve</text>
<text text-anchor="middle" x="950" y="-1679.6" font-family="Times,serif" font-size="8.00">0 of 24919(100%)</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N8 -->
<g id="edge56" class="edge"><title>N47&#45;&gt;N8</title>
<g id="a_edge56"><a xlink:title="net/http.(*conn).serve &#45;&gt; net/http.newBufioReader (771)">
<path fill="none" stroke="black" stroke-width="3" d="M993.549,-1672.37C1041.3,-1658.51 1118.55,-1636.1 1174.44,-1619.89"/>
<polygon fill="black" stroke="black" stroke-width="3" points="1175.64,-1623.19 1184.27,-1617.04 1173.69,-1616.46 1175.64,-1623.19"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="net/http.(*conn).serve &#45;&gt; net/http.newBufioReader (771)">
<text text-anchor="middle" x="1127.5" y="-1638.8" font-family="Times,serif" font-size="14.00"> 771</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N9 -->
<g id="edge57" class="edge"><title>N47&#45;&gt;N9</title>
<g id="a_edge57"><a xlink:title="net/http.(*conn).serve &#45;&gt; net/http.newBufioWriterSize (771)">
<path fill="none" stroke="black" stroke-width="3" d="M918.431,-1667.8C894.141,-1654.56 860.405,-1636.18 834.187,-1621.9"/>
<polygon fill="black" stroke="black" stroke-width="3" points="835.711,-1618.74 825.255,-1617.03 832.362,-1624.89 835.711,-1618.74"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="net/http.(*conn).serve &#45;&gt; net/http.newBufioWriterSize (771)">
<text text-anchor="middle" x="894.5" y="-1638.8" font-family="Times,serif" font-size="14.00"> 771</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N46 -->
<g id="edge21" class="edge"><title>N47&#45;&gt;N46</title>
<g id="a_edge21"><a xlink:title="net/http.(*conn).serve &#45;&gt; net/http.(*conn).readRequest (23361)">
<path fill="none" stroke="black" stroke-width="63" d="M950,-1667.8C950,-1656.16 950,-1640.55 950,-1627.24"/>
<polygon fill="black" stroke="black" stroke-width="63" points="1005.13,-1627.17 950,-1617.18 894.875,-1627.18 1005.13,-1627.17"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="net/http.(*conn).serve &#45;&gt; net/http.(*conn).readRequest (23361)">
<text text-anchor="middle" x="969.5" y="-1638.8" font-family="Times,serif" font-size="14.00"> 23361</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node65" class="node"><title>N52</title>
<g id="a_node65"><a xlink:title="net/http.serverHandler.ServeHTTP (16)">
<polygon fill="#f8f8f8" stroke="black" points="1151,-1617 1023,-1617 1023,-1581 1151,-1581 1151,-1617"/>
<text text-anchor="middle" x="1087" y="-1601.6" font-family="Times,serif" font-size="8.00">net/http.serverHandler.ServeHTTP</text>
<text text-anchor="middle" x="1087" y="-1592.6" font-family="Times,serif" font-size="8.00">0 of 16(0.85%)</text>
</a>
</g>
</g>
<!-- N47&#45;&gt;N52 -->
<g id="edge69" class="edge"><title>N47&#45;&gt;N52</title>
<g id="a_edge69"><a xlink:title="net/http.(*conn).serve &#45;&gt; net/http.serverHandler.ServeHTTP (16)">
<path fill="none" stroke="black" d="M977.724,-1667.8C998.707,-1654.78 1027.72,-1636.78 1050.57,-1622.6"/>
<polygon fill="black" stroke="black" points="1052.67,-1625.42 1059.32,-1617.18 1048.97,-1619.47 1052.67,-1625.42"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="net/http.(*conn).serve &#45;&gt; net/http.serverHandler.ServeHTTP (16)">
<text text-anchor="middle" x="1036" y="-1638.8" font-family="Times,serif" font-size="14.00"> 16</text>
</a>
</g>
</g>
<!-- N48&#45;&gt;N29 -->
<g id="edge22" class="edge"><title>N48&#45;&gt;N29</title>
<g id="a_edge22"><a xlink:title="net/http.(*connReader).Read &#45;&gt; main.(*conn).Read (23361)">
<path fill="none" stroke="black" stroke-width="63" d="M950,-951.799C950,-940.163 950,-924.548 950,-911.237"/>
<polygon fill="black" stroke="black" stroke-width="63" points="1005.13,-911.175 950,-901.175 894.875,-911.176 1005.13,-911.175"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="net/http.(*connReader).Read &#45;&gt; main.(*conn).Read (23361)">
<text text-anchor="middle" x="969.5" y="-922.8" font-family="Times,serif" font-size="14.00"> 23361</text>
</a>
</g>
</g>
<!-- N49&#45;&gt;N34 -->
<g id="edge70" class="edge"><title>N49&#45;&gt;N34</title>
<g id="a_edge70"><a xlink:title="net/http.HandlerFunc.ServeHTTP &#45;&gt; main.handleAPI (16)">
<path fill="none" stroke="black" d="M1134,-1038.8C1134,-1027.16 1134,-1011.55 1134,-998.237"/>
<polygon fill="black" stroke="black" points="1137.5,-998.175 1134,-988.175 1130.5,-998.175 1137.5,-998.175"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="net/http.HandlerFunc.ServeHTTP &#45;&gt; main.handleAPI (16)">
<text text-anchor="middle" x="1143" y="-1009.8" font-family="Times,serif" font-size="14.00"> 16</text>
</a>
</g>
</g>
<!-- N50&#45;&gt;N45 -->
<g id="edge31" class="edge"><title>N50&#45;&gt;N45</title>
<g id="a_edge31"><a xlink:title="net/http.Serve &#45;&gt; net/http.(*Server).Serve (8875)">
<path fill="none" stroke="black" stroke-width="24" d="M657,-1580.8C657,-1569.16 657,-1553.55 657,-1540.24"/>
<polygon fill="black" stroke="black" stroke-width="24" points="678,-1540.18 657,-1530.18 636,-1540.18 678,-1540.18"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="net/http.Serve &#45;&gt; net/http.(*Server).Serve (8875)">
<text text-anchor="middle" x="673" y="-1551.8" font-family="Times,serif" font-size="14.00"> 8875</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node66" class="node"><title>N53</title>
<g id="a_node66"><a xlink:title="net/textproto.(*Reader).ReadLine (23361)">
<polygon fill="#f8f8f8" stroke="black" points="1012,-1440 888,-1440 888,-1404 1012,-1404 1012,-1440"/>
<text text-anchor="middle" x="950" y="-1424.6" font-family="Times,serif" font-size="8.00">net/textproto.(*Reader).ReadLine</text>
<text text-anchor="middle" x="950" y="-1415.6" font-family="Times,serif" font-size="8.00">0 of 23361(100%)</text>
</a>
</g>
</g>
<!-- N51&#45;&gt;N53 -->
<g id="edge23" class="edge"><title>N51&#45;&gt;N53</title>
<g id="a_edge23"><a xlink:title="net/http.readRequest &#45;&gt; net/textproto.(*Reader).ReadLine (23361)">
<path fill="none" stroke="black" stroke-width="63" d="M950,-1493.61C950,-1481.24 950,-1464.37 950,-1450.22"/>
<polygon fill="black" stroke="black" stroke-width="63" points="1005.13,-1450.05 950,-1440.05 894.875,-1450.05 1005.13,-1450.05"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="net/http.readRequest &#45;&gt; net/textproto.(*Reader).ReadLine (23361)">
<text text-anchor="middle" x="969.5" y="-1464.8" font-family="Times,serif" font-size="14.00"> 23361</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N33 -->
<g id="edge71" class="edge"><title>N52&#45;&gt;N33</title>
<g id="a_edge71"><a xlink:title="net/http.serverHandler.ServeHTTP &#45;&gt; main.(*protoHandler).ServeHTTP (16)">
<path fill="none" stroke="black" d="M1091.45,-1580.8C1094.46,-1569.16 1098.51,-1553.55 1101.95,-1540.24"/>
<polygon fill="black" stroke="black" points="1105.44,-1540.73 1104.55,-1530.18 1098.66,-1538.98 1105.44,-1540.73"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="net/http.serverHandler.ServeHTTP &#45;&gt; main.(*protoHandler).ServeHTTP (16)">
<text text-anchor="middle" x="1109" y="-1551.8" font-family="Times,serif" font-size="14.00"> 16</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node67" class="node"><title>N54</title>
<g id="a_node67"><a xlink:title="net/textproto.(*Reader).readLineSlice (23361)">
<polygon fill="#f8f8f8" stroke="black" points="1019,-1343 881,-1343 881,-1307 1019,-1307 1019,-1343"/>
<text text-anchor="middle" x="950" y="-1327.6" font-family="Times,serif" font-size="8.00">net/textproto.(*Reader).readLineSlice</text>
<text text-anchor="middle" x="950" y="-1318.6" font-family="Times,serif" font-size="8.00">0 of 23361(100%)</text>
</a>
</g>
</g>
<!-- N53&#45;&gt;N54 -->
<g id="edge24" class="edge"><title>N53&#45;&gt;N54</title>
<g id="a_edge24"><a xlink:title="net/textproto.(*Reader).ReadLine &#45;&gt; net/textproto.(*Reader).readLineSlice (23361)">
<path fill="none" stroke="black" stroke-width="63" d="M950,-1403.58C950,-1389.65 950,-1369.86 950,-1353.76"/>
<polygon fill="black" stroke="black" stroke-width="63" points="1005.13,-1353.31 950,-1343.31 894.875,-1353.31 1005.13,-1353.31"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="net/textproto.(*Reader).ReadLine &#45;&gt; net/textproto.(*Reader).readLineSlice (23361)">
<text text-anchor="middle" x="969.5" y="-1371.8" font-family="Times,serif" font-size="14.00"> 23361</text>
</a>
</g>
</g>
<!-- N54&#45;&gt;N12 -->
<g id="edge25" class="edge"><title>N54&#45;&gt;N12</title>
<g id="a_edge25"><a xlink:title="net/textproto.(*Reader).readLineSlice &#45;&gt; bufio.(*Reader).ReadLine (23361)">
<path fill="none" stroke="black" stroke-width="63" d="M950,-1306.7C950,-1293.46 950,-1274.95 950,-1259.66"/>
<polygon fill="black" stroke="black" stroke-width="63" points="1005.13,-1259.23 950,-1249.23 894.875,-1259.23 1005.13,-1259.23"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="net/textproto.(*Reader).readLineSlice &#45;&gt; bufio.(*Reader).ReadLine (23361)">
<text text-anchor="middle" x="969.5" y="-1270.8" font-family="Times,serif" font-size="14.00"> 23361</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node70" class="node"><title>N57</title>
<g id="a_node70"><a xlink:title="regexp.(*Regexp).replaceAll (16)">
<polygon fill="#f8f8f8" stroke="black" points="1329.5,-616 1220.5,-616 1220.5,-580 1329.5,-580 1329.5,-616"/>
<text text-anchor="middle" x="1275" y="-600.6" font-family="Times,serif" font-size="8.00">regexp.(*Regexp).replaceAll</text>
<text text-anchor="middle" x="1275" y="-591.6" font-family="Times,serif" font-size="8.00">0 of 16(0.85%)</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N57 -->
<g id="edge72" class="edge"><title>N55&#45;&gt;N57</title>
<g id="a_edge72"><a xlink:title="regexp.(*Regexp).ReplaceAll &#45;&gt; regexp.(*Regexp).replaceAll (16)">
<path fill="none" stroke="black" d="M1225.73,-678.658C1234.94,-663.761 1248.36,-642.063 1258.87,-625.073"/>
<polygon fill="black" stroke="black" points="1262.08,-626.537 1264.37,-616.192 1256.13,-622.855 1262.08,-626.537"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="regexp.(*Regexp).ReplaceAll &#45;&gt; regexp.(*Regexp).replaceAll (16)">
<text text-anchor="middle" x="1262" y="-637.8" font-family="Times,serif" font-size="14.00"> 16</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node69" class="node"><title>N56</title>
<g id="a_node69"><a xlink:title="regexp.(*Regexp).doExecute (16)">
<polygon fill="#f8f8f8" stroke="black" points="1540,-529 1430,-529 1430,-493 1540,-493 1540,-529"/>
<text text-anchor="middle" x="1485" y="-513.6" font-family="Times,serif" font-size="8.00">regexp.(*Regexp).doExecute</text>
<text text-anchor="middle" x="1485" y="-504.6" font-family="Times,serif" font-size="8.00">0 of 16(0.85%)</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node71" class="node"><title>N58</title>
<g id="a_node71"><a xlink:title="regexp.(*machine).backtrack (16)">
<polygon fill="#f8f8f8" stroke="black" points="2063,-430 1953,-430 1953,-394 2063,-394 2063,-430"/>
<text text-anchor="middle" x="2008" y="-414.6" font-family="Times,serif" font-size="8.00">regexp.(*machine).backtrack</text>
<text text-anchor="middle" x="2008" y="-405.6" font-family="Times,serif" font-size="8.00">0 of 16(0.85%)</text>
</a>
</g>
</g>
<!-- N56&#45;&gt;N58 -->
<g id="edge73" class="edge"><title>N56&#45;&gt;N58</title>
<g id="a_edge73"><a xlink:title="regexp.(*Regexp).doExecute &#45;&gt; regexp.(*machine).backtrack (16)">
<path fill="none" stroke="black" d="M1540.11,-506.796C1627.37,-500.626 1802,-483.798 1944,-442 1951.16,-439.892 1958.55,-437.136 1965.66,-434.16"/>
<polygon fill="black" stroke="black" points="1967.37,-437.231 1975.12,-430.008 1964.56,-430.821 1967.37,-437.231"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="regexp.(*Regexp).doExecute &#45;&gt; regexp.(*machine).backtrack (16)">
<text text-anchor="middle" x="1879" y="-463.8" font-family="Times,serif" font-size="14.00"> 16</text>
</a>
</g>
</g>
<!-- N57&#45;&gt;N56 -->
<g id="edge74" class="edge"><title>N57&#45;&gt;N56</title>
<g id="a_edge74"><a xlink:title="regexp.(*Regexp).replaceAll &#45;&gt; regexp.(*Regexp).doExecute (16)">
<path fill="none" stroke="black" d="M1317.24,-579.901C1350.78,-566.328 1397.8,-547.295 1433.53,-532.832"/>
<polygon fill="black" stroke="black" points="1434.87,-536.068 1442.82,-529.071 1432.24,-529.579 1434.87,-536.068"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="regexp.(*Regexp).replaceAll &#45;&gt; regexp.(*Regexp).doExecute (16)">
<text text-anchor="middle" x="1402" y="-550.8" font-family="Times,serif" font-size="14.00"> 16</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N11 -->
<g id="edge75" class="edge"><title>N58&#45;&gt;N11</title>
<g id="a_edge75"><a xlink:title="regexp.(*machine).backtrack &#45;&gt; regexp.(*bitState).reset (16)">
<path fill="none" stroke="black" d="M2008,-393.969C2008,-376.712 2008,-349.743 2008,-329.462"/>
<polygon fill="black" stroke="black" points="2011.5,-329.271 2008,-319.271 2004.5,-329.271 2011.5,-329.271"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="regexp.(*machine).backtrack &#45;&gt; regexp.(*bitState).reset (16)">
<text text-anchor="middle" x="2017" y="-352.8" font-family="Times,serif" font-size="14.00"> 16</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node72" class="node"><title>N59</title>
<g id="a_node72"><a xlink:title="runtime.goexit (33794)">
<polygon fill="#f8f8f8" stroke="black" points="987.5,-1864.5 912.5,-1864.5 912.5,-1828.5 987.5,-1828.5 987.5,-1864.5"/>
<text text-anchor="middle" x="950" y="-1849.1" font-family="Times,serif" font-size="8.00">runtime.goexit</text>
<text text-anchor="middle" x="950" y="-1840.1" font-family="Times,serif" font-size="8.00">0 of 33794(100%)</text>
</a>
</g>
</g>
<!-- N59&#45;&gt;N37 -->
<g id="edge32" class="edge"><title>N59&#45;&gt;N37</title>
<g id="a_edge32"><a xlink:title="runtime.goexit &#45;&gt; main.main.func2 (8875)">
<path fill="none" stroke="black" stroke-width="24" d="M946.494,-1828.42C941.284,-1806.94 929.587,-1770.06 907,-1747 883.919,-1723.43 849.835,-1708.18 822.357,-1698.95"/>
<polygon fill="black" stroke="black" stroke-width="24" points="828.487,-1678.86 812.565,-1695.82 815.692,-1718.86 828.487,-1678.86"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="runtime.goexit &#45;&gt; main.main.func2 (8875)">
<text text-anchor="middle" x="912" y="-1725.8" font-family="Times,serif" font-size="14.00"> 8875</text>
</a>
</g>
</g>
<!-- N59&#45;&gt;N47 -->
<g id="edge13" class="edge"><title>N59&#45;&gt;N47</title>
<g id="a_edge13"><a xlink:title="runtime.goexit &#45;&gt; net/http.(*conn).serve (24919)">
<path fill="none" stroke="black" stroke-width="67" d="M950,-1828.24C950,-1800.84 950,-1747.18 950,-1714.47"/>
<polygon fill="black" stroke="black" stroke-width="67" points="1008.63,-1714.24 950,-1704.24 891.375,-1714.24 1008.63,-1714.24"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="runtime.goexit &#45;&gt; net/http.(*conn).serve (24919)">
<text text-anchor="middle" x="969.5" y="-1725.8" font-family="Times,serif" font-size="14.00"> 24919</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node73" class="node"><title>N60</title>
<g id="a_node73"><a xlink:title="runtime.newproc.func1 (1365)">
<polygon fill="#f8f8f8" stroke="black" points="1425.5,-1617 1334.5,-1617 1334.5,-1581 1425.5,-1581 1425.5,-1617"/>
<text text-anchor="middle" x="1380" y="-1601.6" font-family="Times,serif" font-size="8.00">runtime.newproc.func1</text>
<text text-anchor="middle" x="1380" y="-1592.6" font-family="Times,serif" font-size="8.00">0 of 1365(72.88%)</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node74" class="node"><title>N61</title>
<g id="a_node74"><a xlink:title="runtime.newproc1 (1365)">
<polygon fill="#f8f8f8" stroke="black" points="1418.5,-1530 1341.5,-1530 1341.5,-1494 1418.5,-1494 1418.5,-1530"/>
<text text-anchor="middle" x="1380" y="-1514.6" font-family="Times,serif" font-size="8.00">runtime.newproc1</text>
<text text-anchor="middle" x="1380" y="-1505.6" font-family="Times,serif" font-size="8.00">0 of 1365(72.88%)</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N61 -->
<g id="edge52" class="edge"><title>N60&#45;&gt;N61</title>
<g id="a_edge52"><a xlink:title="runtime.newproc.func1 &#45;&gt; runtime.newproc1 (1365)">
<path fill="none" stroke="black" stroke-width="4" d="M1380,-1580.8C1380,-1569.16 1380,-1553.55 1380,-1540.24"/>
<polygon fill="black" stroke="black" stroke-width="4" points="1383.5,-1540.18 1380,-1530.18 1376.5,-1540.18 1383.5,-1540.18"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="runtime.newproc.func1 &#45;&gt; runtime.newproc1 (1365)">
<text text-anchor="middle" x="1396" y="-1551.8" font-family="Times,serif" font-size="14.00"> 1365</text>
</a>
</g>
</g>
<!-- N61&#45;&gt;N7 -->
<g id="edge53" class="edge"><title>N61&#45;&gt;N7</title>
<g id="a_edge53"><a xlink:title="runtime.newproc1 &#45;&gt; runtime.malg (1365)">
<path fill="none" stroke="black" stroke-width="4" d="M1380,-1493.61C1380,-1482.15 1380,-1466.83 1380,-1453.39"/>
<polygon fill="black" stroke="black" stroke-width="4" points="1383.5,-1453.12 1380,-1443.12 1376.5,-1453.12 1383.5,-1453.12"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="runtime.newproc1 &#45;&gt; runtime.malg (1365)">
<text text-anchor="middle" x="1396" y="-1464.8" font-family="Times,serif" font-size="14.00"> 1365</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node75" class="node"><title>N62</title>
<g id="a_node75"><a xlink:title="runtime.startTheWorldWithSema (1365)">
<polygon fill="#f8f8f8" stroke="black" points="1442,-1864.5 1318,-1864.5 1318,-1828.5 1442,-1828.5 1442,-1864.5"/>
<text text-anchor="middle" x="1380" y="-1849.1" font-family="Times,serif" font-size="8.00">runtime.startTheWorldWithSema</text>
<text text-anchor="middle" x="1380" y="-1840.1" font-family="Times,serif" font-size="8.00">0 of 1365(72.88%)</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node76" class="node"><title>N63</title>
<g id="a_node76"><a xlink:title="runtime.systemstack (1365)">
<polygon fill="#f8f8f8" stroke="black" points="1421,-1704 1339,-1704 1339,-1668 1421,-1668 1421,-1704"/>
<text text-anchor="middle" x="1380" y="-1688.6" font-family="Times,serif" font-size="8.00">runtime.systemstack</text>
<text text-anchor="middle" x="1380" y="-1679.6" font-family="Times,serif" font-size="8.00">0 of 1365(72.88%)</text>
</a>
</g>
</g>
<!-- N62&#45;&gt;N63 -->
<g id="edge54" class="edge"><title>N62&#45;&gt;N63</title>
<g id="a_edge54"><a xlink:title="runtime.startTheWorldWithSema &#45;&gt; runtime.systemstack (1365)">
<path fill="none" stroke="black" stroke-width="4" d="M1380,-1828.24C1380,-1800.84 1380,-1747.18 1380,-1714.47"/>
<polygon fill="black" stroke="black" stroke-width="4" points="1383.5,-1714.24 1380,-1704.24 1376.5,-1714.24 1383.5,-1714.24"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="runtime.startTheWorldWithSema &#45;&gt; runtime.systemstack (1365)">
<text text-anchor="middle" x="1396" y="-1725.8" font-family="Times,serif" font-size="14.00"> 1365</text>
</a>
</g>
</g>
<!-- N63&#45;&gt;N60 -->
<g id="edge55" class="edge"><title>N63&#45;&gt;N60</title>
<g id="a_edge55"><a xlink:title="runtime.systemstack &#45;&gt; runtime.newproc.func1 (1365)">
<path fill="none" stroke="black" stroke-width="4" d="M1380,-1667.8C1380,-1656.16 1380,-1640.55 1380,-1627.24"/>
<polygon fill="black" stroke="black" stroke-width="4" points="1383.5,-1627.18 1380,-1617.18 1376.5,-1627.18 1383.5,-1627.18"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.newproc.func1 (1365)">
<text text-anchor="middle" x="1396" y="-1638.8" font-family="Times,serif" font-size="14.00"> 1365</text>
</a>
</g>
</g>
<!-- N64&#45;&gt;N3 -->
<g id="edge41" class="edge"><title>N64&#45;&gt;N3</title>
<g id="a_edge41"><a xlink:title="syscall.Accept4 &#45;&gt; syscall.anyToSockaddr (8192)">
<path fill="none" stroke="black" stroke-width="22" d="M657,-777.658C657,-766.542 657,-751.638 657,-737.729"/>
<polygon fill="black" stroke="black" stroke-width="22" points="676.25,-737.366 657,-727.366 637.75,-737.367 676.25,-737.366"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="syscall.Accept4 &#45;&gt; syscall.anyToSockaddr (8192)">
<text text-anchor="middle" x="673" y="-748.8" font-family="Times,serif" font-size="14.00"> 8192</text>
</a>
</g>
</g>
</g>
</g></svg>
@jmhodges
Copy link
Author

(Keep for golang/go#15500)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment