xs/hkexsh/hkexsh-vis.gv.svg
2018-11-22 23:09:22 -08:00

719 lines
57 KiB
XML

<?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.40.1 (20161225.0304)
-->
<!-- Title: gocallvis Pages: 1 -->
<svg width="967pt" height="1955pt"
viewBox="0.00 0.00 966.52 1955.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(0 1955)">
<title>gocallvis</title>
<polygon fill="#d3d3d3" stroke="transparent" points="0,0 0,-1955 966.5204,-1955 966.5204,0 0,0"/>
<text text-anchor="middle" x="102" y="-7.8" font-family="Arial" font-size="14.00" fill="#000000">blitter.com/go/hkexsh/hkexsh</text>
<g id="clust1" class="cluster">
<title>cluster_focus</title>
<polygon fill="#e6ecfa" stroke="#000000" stroke-width=".5" points="8,-31 8,-1947 958.5204,-1947 958.5204,-31 8,-31"/>
<text text-anchor="middle" x="483.2602" y="-1928.6" font-family="Arial" font-size="18.00" fill="#000000">main</text>
</g>
<g id="clust2" class="cluster">
<title>cluster_blitter.com/go/hkexsh</title>
<g id="a_clust2"><a xlink:href="/?f=blitter.com/go/hkexsh" xlink:title="package: blitter.com/go/hkexsh">
<polygon fill="#ffffe0" stroke="#000000" stroke-width=".8" points="647.8627,-39 647.8627,-836 787.067,-836 787.067,-39 647.8627,-39"/>
<text text-anchor="middle" x="717.4649" y="-819.2" font-family="bold" font-size="16.00" fill="#000000">[hkexsh]</text>
</a>
</g>
</g>
<g id="clust3" class="cluster">
<title>cluster_*blitter.com/go/hkexsh.Session</title>
<g id="a_clust3"><a xlink:href="/?f=blitter.com/go/hkexsh" xlink:title="type: *blitter.com/go/hkexsh.Session">
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M679.1134,-274C679.1134,-274 755.8163,-274 755.8163,-274 761.8163,-274 767.8163,-280 767.8163,-286 767.8163,-286 767.8163,-339 767.8163,-339 767.8163,-345 761.8163,-351 755.8163,-351 755.8163,-351 679.1134,-351 679.1134,-351 673.1134,-351 667.1134,-345 667.1134,-339 667.1134,-339 667.1134,-286 667.1134,-286 667.1134,-280 673.1134,-274 679.1134,-274"/>
<text text-anchor="middle" x="717.4649" y="-283" font-family="bold" font-size="15.00" fill="#222222">(*Session)</text>
</a>
</g>
</g>
<g id="clust4" class="cluster">
<title>cluster_blitter.com/go/hkexsh.Session</title>
<g id="a_clust4"><a xlink:href="/?f=blitter.com/go/hkexsh" xlink:title="type: blitter.com/go/hkexsh.Session">
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M671.9632,-359C671.9632,-359 762.9666,-359 762.9666,-359 768.9666,-359 774.9666,-365 774.9666,-371 774.9666,-371 774.9666,-790 774.9666,-790 774.9666,-796 768.9666,-802 762.9666,-802 762.9666,-802 671.9632,-802 671.9632,-802 665.9632,-802 659.9632,-796 659.9632,-790 659.9632,-790 659.9632,-371 659.9632,-371 659.9632,-365 665.9632,-359 671.9632,-359"/>
<text text-anchor="middle" x="717.4649" y="-368" font-family="bold" font-size="15.00" fill="#222222">(Session)</text>
</a>
</g>
</g>
<g id="clust5" class="cluster">
<title>cluster_blitter.com/go/hkexsh/hkexnet</title>
<g id="a_clust5"><a xlink:href="/?f=blitter.com/go/hkexsh/hkexnet" xlink:title="package: blitter.com/go/hkexsh/hkexnet">
<polygon fill="#ffffe0" stroke="#000000" stroke-width=".8" points="637.1126,-1105 637.1126,-1911 797.8171,-1911 797.8171,-1105 637.1126,-1105"/>
<text text-anchor="middle" x="717.4649" y="-1894.2" font-family="bold" font-size="16.00" fill="#000000">[hkexnet]</text>
</a>
</g>
</g>
<g id="clust6" class="cluster">
<title>cluster_*blitter.com/go/hkexsh/hkexnet.Conn</title>
<g id="a_clust6"><a xlink:href="/?f=blitter.com/go/hkexsh/hkexnet" xlink:title="type: *blitter.com/go/hkexsh/hkexnet.Conn">
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M657.1126,-1434C657.1126,-1434 777.8171,-1434 777.8171,-1434 783.8171,-1434 789.8171,-1440 789.8171,-1446 789.8171,-1446 789.8171,-1865 789.8171,-1865 789.8171,-1871 783.8171,-1877 777.8171,-1877 777.8171,-1877 657.1126,-1877 657.1126,-1877 651.1126,-1877 645.1126,-1871 645.1126,-1865 645.1126,-1865 645.1126,-1446 645.1126,-1446 645.1126,-1440 651.1126,-1434 657.1126,-1434"/>
<text text-anchor="middle" x="717.4649" y="-1443" font-family="bold" font-size="15.00" fill="#222222">(*Conn)</text>
</a>
</g>
</g>
<g id="clust7" class="cluster">
<title>cluster_blitter.com/go/hkexsh/hkexnet.Conn</title>
<g id="a_clust7"><a xlink:href="/?f=blitter.com/go/hkexsh/hkexnet" xlink:title="type: blitter.com/go/hkexsh/hkexnet.Conn">
<path fill="#eed8ae" stroke="#000000" stroke-width=".5" d="M678.0134,-1113C678.0134,-1113 756.9164,-1113 756.9164,-1113 762.9164,-1113 768.9164,-1119 768.9164,-1125 768.9164,-1125 768.9164,-1300 768.9164,-1300 768.9164,-1306 762.9164,-1312 756.9164,-1312 756.9164,-1312 678.0134,-1312 678.0134,-1312 672.0134,-1312 666.0134,-1306 666.0134,-1300 666.0134,-1300 666.0134,-1125 666.0134,-1125 666.0134,-1119 672.0134,-1113 678.0134,-1113"/>
<text text-anchor="middle" x="717.4649" y="-1122" font-family="bold" font-size="15.00" fill="#222222">(Conn)</text>
</a>
</g>
</g>
<g id="clust8" class="cluster">
<title>cluster_blitter.com/go/hkexsh/logger</title>
<g id="a_clust8"><a xlink:href="/?f=blitter.com/go/hkexsh/logger" xlink:title="package: blitter.com/go/hkexsh/logger">
<polygon fill="#ffffe0" stroke="#000000" stroke-width=".8" points="664.3633,-958 664.3633,-1097 770.5664,-1097 770.5664,-958 664.3633,-958"/>
<text text-anchor="middle" x="717.4649" y="-1080.2" font-family="bold" font-size="16.00" fill="#000000">[logger]</text>
</a>
</g>
</g>
<g id="clust9" class="cluster">
<title>cluster_blitter.com/go/hkexsh/spinsult</title>
<g id="a_clust9"><a xlink:href="/?f=blitter.com/go/hkexsh/spinsult" xlink:title="package: blitter.com/go/hkexsh/spinsult">
<polygon fill="#ffffe0" stroke="#000000" stroke-width=".8" points="407.1069,-280 407.1069,-358 534.2108,-358 534.2108,-280 407.1069,-280"/>
<text text-anchor="middle" x="470.6588" y="-341.2" font-family="bold" font-size="16.00" fill="#000000">[spinsult]</text>
</a>
</g>
</g>
<g id="clust10" class="cluster">
<title>cluster_github.com/mattn/go&#45;isatty</title>
<g id="a_clust10"><a xlink:href="/?f=github.com/mattn/go-isatty" xlink:title="package: github.com/mattn/go&#45;isatty">
<polygon fill="#ffffe0" stroke="#000000" stroke-width=".8" points="175.7014,-1494 175.7014,-1572 281.9045,-1572 281.9045,-1494 175.7014,-1494"/>
<text text-anchor="middle" x="228.803" y="-1555.2" font-family="bold" font-size="16.00" fill="#000000">[isatty]</text>
</a>
</g>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.reqTunnel -->
<g id="node1" class="node">
<title>blitter.com/go/hkexsh/hkexsh.reqTunnel</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width=".5" cx="470.6588" cy="-1162" rx="43.4031" ry="18"/>
<text text-anchor="middle" x="470.6588" y="-1158.3" font-family="Verdana" font-size="14.00" fill="#000000">reqTunnel</text>
</g>
<!-- (*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket -->
<g id="node33" class="node">
<title>(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1546" rx="50.7037" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1542.3" font-family="Verdana" font-size="14.00" fill="#000000">WritePacket</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.reqTunnel&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket -->
<g id="edge2" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.reqTunnel&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket</title>
<path fill="none" stroke="#8b4513" d="M486.3107,-1179.094C512.2797,-1208.4459 564.0476,-1271.3402 590.7117,-1334 622.9982,-1409.8722 572.1304,-1454.1947 626.7117,-1516 635.465,-1525.9118 647.5623,-1532.5597 660.0738,-1537.0154"/>
<polygon fill="#8b4513" stroke="#8b4513" points="659.0848,-1540.3732 669.6735,-1540.0131 661.1713,-1533.6914 659.0848,-1540.3732"/>
</g>
<!-- blitter.com/go/hkexsh/logger.LogDebug -->
<g id="node43" class="node">
<title>blitter.com/go/hkexsh/logger.LogDebug</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1045" rx="45.2034" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1041.3" font-family="Verdana" font-size="14.00" fill="#000000">LogDebug</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.reqTunnel&#45;&gt;blitter.com/go/hkexsh/logger.LogDebug -->
<g id="edge1" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.reqTunnel&#45;&gt;blitter.com/go/hkexsh/logger.LogDebug</title>
<path fill="none" stroke="#8b4513" d="M504.5894,-1150.4323C519.7923,-1144.9699 537.8348,-1138.0981 553.7117,-1131 599.3989,-1110.5746 650.1482,-1083.1457 682.864,-1064.8103"/>
<polygon fill="#8b4513" stroke="#8b4513" points="684.5986,-1067.8503 691.5941,-1059.8933 681.1634,-1061.7512 684.5986,-1067.8503"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.launchTuns -->
<g id="node2" class="node">
<title>blitter.com/go/hkexsh/hkexsh.launchTuns</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width=".5" cx="228.803" cy="-1140" rx="48.3036" ry="18"/>
<text text-anchor="middle" x="228.803" y="-1136.3" font-family="Verdana" font-size="14.00" fill="#000000">launchTuns</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.launchTuns&#45;&gt;blitter.com/go/hkexsh/hkexsh.reqTunnel -->
<g id="edge3" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.launchTuns&#45;&gt;blitter.com/go/hkexsh/hkexsh.reqTunnel</title>
<path fill="none" stroke="#000000" d="M276.0094,-1144.294C316.7758,-1148.0023 375.6176,-1153.3547 417.9204,-1157.2027"/>
<polygon fill="#000000" stroke="#000000" points="417.7516,-1160.7017 428.0276,-1158.1221 418.3858,-1153.7305 417.7516,-1160.7017"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.rejectUserMsg -->
<g id="node3" class="node">
<title>blitter.com/go/hkexsh/hkexsh.rejectUserMsg</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width=".5" cx="228.803" cy="-306" rx="61.1043" ry="18"/>
<text text-anchor="middle" x="228.803" y="-302.3" font-family="Verdana" font-size="14.00" fill="#000000">rejectUserMsg</text>
</g>
<!-- blitter.com/go/hkexsh/spinsult.GetSentence -->
<g id="node45" class="node">
<title>blitter.com/go/hkexsh/spinsult.GetSentence</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="470.6588" cy="-306" rx="55.6039" ry="18"/>
<text text-anchor="middle" x="470.6588" y="-302.3" font-family="Verdana" font-size="14.00" fill="#000000">GetSentence</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.rejectUserMsg&#45;&gt;blitter.com/go/hkexsh/spinsult.GetSentence -->
<g id="edge4" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.rejectUserMsg&#45;&gt;blitter.com/go/hkexsh/spinsult.GetSentence</title>
<path fill="none" stroke="#8b4513" d="M290.1461,-306C325.0462,-306 368.7737,-306 404.4495,-306"/>
<polygon fill="#8b4513" stroke="#8b4513" points="404.7629,-309.5001 414.7628,-306 404.7628,-302.5001 404.7629,-309.5001"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main -->
<g id="node4" class="node">
<title>blitter.com/go/hkexsh/hkexsh.main</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width=".5" cx="43" cy="-942" rx="27" ry="18"/>
<text text-anchor="middle" x="43" y="-938.3" font-family="Verdana" font-size="14.00" fill="#000000">main</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.launchTuns -->
<g id="edge33" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.launchTuns</title>
<path fill="none" stroke="#000000" d="M45.2654,-960.0386C50.2775,-992.4272 65.2813,-1060.6298 106,-1099 124.1682,-1116.1203 149.6862,-1126.1026 172.7571,-1131.918"/>
<polygon fill="#000000" stroke="#000000" points="172.276,-1135.3989 182.8067,-1134.2356 173.849,-1128.5779 172.276,-1135.3989"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.rejectUserMsg -->
<g id="edge26" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.rejectUserMsg</title>
<path fill="none" stroke="#000000" d="M44.0548,-923.9031C49.033,-841.2058 71.391,-498.9549 106,-398 116.2828,-368.0051 118.4671,-357.089 143,-337 151.1722,-330.3081 160.9092,-324.9991 170.8413,-320.8065"/>
<polygon fill="#000000" stroke="#000000" points="172.3131,-323.99 180.3788,-317.1202 169.7894,-317.4607 172.3131,-323.99"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.parseNonSwitchArgs -->
<g id="node5" class="node">
<title>blitter.com/go/hkexsh/hkexsh.parseNonSwitchArgs</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width=".5" cx="228.803" cy="-367" rx="85.6064" ry="18"/>
<text text-anchor="middle" x="228.803" y="-363.3" font-family="Verdana" font-size="14.00" fill="#000000">parseNonSwitchArgs</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.parseNonSwitchArgs -->
<g id="edge5" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.parseNonSwitchArgs</title>
<path fill="none" stroke="#000000" d="M43.9546,-923.8403C48.8015,-834.5594 71.8026,-444.8188 106,-404 115.736,-392.3789 128.9797,-384.3221 143.1766,-378.7557"/>
<polygon fill="#000000" stroke="#000000" points="144.3382,-382.0574 152.6163,-375.445 142.0215,-375.4519 144.3382,-382.0574"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main$1 -->
<g id="node6" class="node">
<title>blitter.com/go/hkexsh/hkexsh.main$1</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-dasharray="1,5" cx="228.803" cy="-245" rx="34.8031" ry="18"/>
<text text-anchor="middle" x="228.803" y="-241.3" font-family="Verdana" font-size="14.00" fill="#000000">main$1</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.main$1 -->
<g id="edge13" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.main$1</title>
<path fill="none" stroke="#000000" d="M43.7597,-923.6771C46.9431,-853.6398 61.1937,-596.4308 106,-390 117.299,-337.9436 105.9575,-314.2803 143,-276 150.3141,-268.4415 159.6072,-262.7184 169.3604,-258.3871"/>
<polygon fill="#000000" stroke="#000000" points="186.8071,-256.3223 195.209,-249.8679 184.6159,-249.674 186.8071,-256.3223"/>
<polyline fill="none" stroke="#000000" points="185.7115,-252.9981 180.9628,-254.5632 "/>
<polygon fill="none" stroke="#000000" points="169.5658,-258.3195 174.0122,-252.6424 180.9628,-254.5632 176.5164,-260.2403 169.5658,-258.3195"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.sendSessionParams -->
<g id="node7" class="node">
<title>blitter.com/go/hkexsh/hkexsh.sendSessionParams</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width=".5" cx="470.6588" cy="-822" rx="83.1058" ry="18"/>
<text text-anchor="middle" x="470.6588" y="-818.3" font-family="Verdana" font-size="14.00" fill="#000000">sendSessionParams</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.sendSessionParams -->
<g id="edge23" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.sendSessionParams</title>
<path fill="none" stroke="#000000" d="M68.1554,-934.9415C134.2995,-916.3816 314.5417,-865.8061 409.7949,-839.0783"/>
<polygon fill="#000000" stroke="#000000" points="410.897,-842.4043 419.5795,-836.3327 409.0058,-835.6646 410.897,-842.4043"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main$2 -->
<g id="node8" class="node">
<title>blitter.com/go/hkexsh/hkexsh.main$2</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-dasharray="1,5" cx="228.803" cy="-1315" rx="34.8031" ry="18"/>
<text text-anchor="middle" x="228.803" y="-1311.3" font-family="Verdana" font-size="14.00" fill="#000000">main$2</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.main$2 -->
<g id="edge32" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.main$2</title>
<path fill="none" stroke="#000000" d="M44.2543,-960.257C48.8114,-1021.6461 66.3503,-1219.429 106,-1267 122.5978,-1286.9137 148.5433,-1298.6021 172.3177,-1305.4456"/>
<polygon fill="#000000" stroke="#000000" points="184.4046,-1311.9024 194.9418,-1310.7993 186.0166,-1305.0906 184.4046,-1311.9024"/>
<polyline fill="none" stroke="#000000" points="185.2106,-1308.4965 180.345,-1307.3451 "/>
<ellipse fill="none" stroke="#000000" cx="176.4525" cy="-1306.424" rx="4" ry="4"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode -->
<g id="node10" class="node">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width=".5" cx="228.803" cy="-728" rx="55.0038" ry="18"/>
<text text-anchor="middle" x="228.803" y="-724.3" font-family="Verdana" font-size="14.00" fill="#000000">doShellMode</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.doShellMode -->
<g id="edge46" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.doShellMode</title>
<path fill="none" stroke="#000000" d="M44.2047,-923.8358C47.5552,-888.188 60.0481,-808.7404 106,-765 122.2205,-749.5601 144.6496,-740.5411 165.9055,-735.281"/>
<polygon fill="#000000" stroke="#000000" points="166.889,-738.6477 175.8869,-733.0541 165.3647,-731.8157 166.889,-738.6477"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doCopyMode -->
<g id="node16" class="node">
<title>blitter.com/go/hkexsh/hkexsh.doCopyMode</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width=".5" cx="470.6588" cy="-1100" rx="56.2041" ry="18"/>
<text text-anchor="middle" x="470.6588" y="-1096.3" font-family="Verdana" font-size="14.00" fill="#000000">doCopyMode</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.doCopyMode -->
<g id="edge53" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.doCopyMode</title>
<path fill="none" stroke="#000000" d="M59.0069,-956.7965C71.1279,-967.3244 88.6096,-981.1219 106,-990 207.3903,-1041.7613 337.3219,-1073.6506 411.5577,-1088.9872"/>
<polygon fill="#000000" stroke="#000000" points="411.1571,-1092.4773 421.6543,-1091.0417 412.553,-1085.6179 411.1571,-1092.4773"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.usageShell -->
<g id="node17" class="node">
<title>blitter.com/go/hkexsh/hkexsh.usageShell</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width=".5" cx="228.803" cy="-606" rx="47.7038" ry="18"/>
<text text-anchor="middle" x="228.803" y="-602.3" font-family="Verdana" font-size="14.00" fill="#000000">usageShell</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.usageShell -->
<g id="edge55" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.usageShell</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M46.6592,-923.8433C58.9242,-864.6598 100.2212,-678.735 143,-637 152.1246,-628.098 163.9928,-621.7293 175.9775,-617.1809"/>
<polygon fill="#000000" stroke="#000000" points="177.23,-620.4518 185.5639,-613.9099 174.9693,-613.8269 177.23,-620.4518"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.usageCp -->
<g id="node18" class="node">
<title>blitter.com/go/hkexsh/hkexsh.usageCp</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width=".5" cx="228.803" cy="-667" rx="39.1028" ry="18"/>
<text text-anchor="middle" x="228.803" y="-663.3" font-family="Verdana" font-size="14.00" fill="#000000">usageCp</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.usageCp -->
<g id="edge56" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexsh.usageCp</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M44.6796,-923.8862C49.9435,-878.1559 70.3878,-757.459 143,-698 154.4388,-688.6333 168.9434,-681.9757 182.7573,-677.297"/>
<polygon fill="#000000" stroke="#000000" points="184.1273,-680.5366 192.6402,-674.2295 182.0522,-673.8513 184.1273,-680.5366"/>
</g>
<!-- blitter.com/go/hkexsh.MakeRaw -->
<g id="node19" class="node">
<title>blitter.com/go/hkexsh.MakeRaw</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-65" rx="42.2035" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-61.3" font-family="Verdana" font-size="14.00" fill="#000000">MakeRaw</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh.MakeRaw -->
<g id="edge11" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh.MakeRaw</title>
<path fill="none" stroke="#8b4513" d="M43.7834,-923.9502C46.7734,-863.9955 59.7449,-666.4734 106,-511 117.1709,-473.4523 112.6207,-455.7328 143,-431 173.3659,-406.2781 189.6461,-411 228.803,-411 228.803,-411 228.803,-411 470.6588,-411 513.0719,-411 527.6781,-397.4831 553.7117,-364 629.4873,-266.5415 542.2214,-186.0083 626.7117,-96 637.2664,-84.756 652.064,-77.5903 666.6524,-73.0236"/>
<polygon fill="#8b4513" stroke="#8b4513" points="667.9563,-76.2947 676.664,-70.2592 666.0931,-69.5472 667.9563,-76.2947"/>
</g>
<!-- blitter.com/go/hkexsh.Restore -->
<g id="node20" class="node">
<title>blitter.com/go/hkexsh.Restore</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-248" rx="34.8031" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-244.3" font-family="Verdana" font-size="14.00" fill="#000000">Restore</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh.Restore -->
<g id="edge54" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh.Restore</title>
<path fill="none" stroke="#8b4513" d="M45.3316,-923.9583C54.7127,-853.8192 91.6765,-600.2026 143,-540 171.3483,-506.7474 185.1067,-492 228.803,-492 228.803,-492 228.803,-492 470.6588,-492 524.751,-492 552.2475,-510.0324 590.7117,-472 655.5574,-407.8822 564.2407,-336.4336 626.7117,-270 638.4841,-257.4809 656.0669,-251.5573 672.63,-248.9137"/>
<polygon fill="#8b4513" stroke="#8b4513" points="673.2554,-252.3631 682.7501,-247.6619 672.396,-245.4161 673.2554,-252.3631"/>
</g>
<!-- blitter.com/go/hkexsh.ReadPassword -->
<g id="node21" class="node">
<title>blitter.com/go/hkexsh.ReadPassword</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-126" rx="61.7044" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-122.3" font-family="Verdana" font-size="14.00" fill="#000000">ReadPassword</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh.ReadPassword -->
<g id="edge14" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh.ReadPassword</title>
<path fill="none" stroke="#8b4513" d="M43.8743,-923.8462C48.1556,-843.3701 69.7614,-520.0524 143,-458 172.8755,-432.6876 189.6461,-438 228.803,-438 228.803,-438 228.803,-438 470.6588,-438 524.751,-438 553.0022,-456.7809 590.7117,-418 672.3449,-334.0475 552.2329,-247.3599 626.7117,-157 633.6844,-148.5405 643.0739,-142.3819 653.1757,-137.9002"/>
<polygon fill="#8b4513" stroke="#8b4513" points="654.5501,-141.1212 662.6043,-134.2378 652.0155,-134.5961 654.5501,-141.1212"/>
</g>
<!-- blitter.com/go/hkexsh.NewSession -->
<g id="node22" class="node">
<title>blitter.com/go/hkexsh.NewSession</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-187" rx="52.0048" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-183.3" font-family="Verdana" font-size="14.00" fill="#000000">NewSession</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh.NewSession -->
<g id="edge15" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh.NewSession</title>
<path fill="none" stroke="#8b4513" d="M44.3365,-923.814C50.3795,-846.7481 77.7391,-548.2165 143,-486 171.416,-458.9096 189.5428,-465 228.803,-465 228.803,-465 228.803,-465 470.6588,-465 524.751,-465 552.6122,-483.3978 590.7117,-445 662.6604,-372.4882 560.9474,-296.164 626.7117,-218 635.0006,-208.1483 646.5624,-201.4198 658.6637,-196.8265"/>
<polygon fill="#8b4513" stroke="#8b4513" points="660.0453,-200.0557 668.4321,-193.5817 657.8386,-193.4126 660.0453,-200.0557"/>
</g>
<!-- (*blitter.com/go/hkexsh.Session).SetStatus -->
<g id="node23" class="node">
<title>(*blitter.com/go/hkexsh.Session).SetStatus</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-325" rx="42.2035" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-321.3" font-family="Verdana" font-size="14.00" fill="#000000">SetStatus</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh.Session).SetStatus -->
<g id="edge25" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh.Session).SetStatus</title>
<path fill="none" stroke="#8b4513" d="M45.5985,-924.0802C55.5411,-857.8272 93.1313,-627.8835 143,-576 170.9949,-546.8741 188.4046,-546 228.803,-546 228.803,-546 228.803,-546 470.6588,-546 527.9589,-546 552.9419,-542.0899 590.7117,-499 634.7648,-448.7417 580.8323,-401.5968 626.7117,-353 637.0122,-342.0895 651.457,-335.3976 665.7983,-331.3039"/>
<polygon fill="#8b4513" stroke="#8b4513" points="666.7913,-334.6638 675.6582,-328.8649 665.1103,-327.8686 666.7913,-334.6638"/>
</g>
<!-- (blitter.com/go/hkexsh.Session).Status -->
<g id="node30" class="node">
<title>(blitter.com/go/hkexsh.Session).Status</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-410" rx="29.9034" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-406.3" font-family="Verdana" font-size="14.00" fill="#000000">Status</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(blitter.com/go/hkexsh.Session).Status -->
<g id="edge47" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(blitter.com/go/hkexsh.Session).Status</title>
<path fill="none" stroke="#8b4513" d="M57.4347,-926.5185C75.6574,-907.8654 108.7798,-876.818 143,-859 242.9774,-806.9431 278.6858,-821.0138 387.606,-792 461.2947,-772.371 500.347,-803.4751 553.7117,-749 602.9353,-698.7522 579.4287,-493.078 626.7117,-441 639.7769,-426.6099 659.798,-418.8975 677.7143,-414.765"/>
<polygon fill="#8b4513" stroke="#8b4513" points="678.5541,-418.1664 687.6716,-412.77 677.1788,-411.3028 678.5541,-418.1664"/>
</g>
<!-- blitter.com/go/hkexsh/hkexnet.Init -->
<g id="node31" class="node">
<title>blitter.com/go/hkexsh/hkexnet.Init</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1347" rx="27" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1343.3" font-family="Verdana" font-size="14.00" fill="#000000">Init</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexnet.Init -->
<g id="edge7" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexnet.Init</title>
<path fill="none" stroke="#8b4513" d="M45.5665,-960.2034C55.6684,-1023.9104 98.7315,-1233 228.803,-1233 228.803,-1233 228.803,-1233 470.6588,-1233 524.751,-1233 546.5319,-1221.7892 590.7117,-1253 617.6839,-1272.0544 601.1825,-1297.0519 626.7117,-1318 642.0684,-1330.601 662.9899,-1337.7614 680.8751,-1341.8126"/>
<polygon fill="#8b4513" stroke="#8b4513" points="680.2202,-1345.251 690.7162,-1343.8073 681.6108,-1338.3905 680.2202,-1345.251"/>
</g>
<!-- blitter.com/go/hkexsh/hkexnet.Dial -->
<g id="node32" class="node">
<title>blitter.com/go/hkexsh/hkexnet.Dial</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1408" rx="27" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1404.3" font-family="Verdana" font-size="14.00" fill="#000000">Dial</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexnet.Dial -->
<g id="edge8" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/hkexnet.Dial</title>
<path fill="none" stroke="#8b4513" d="M44.7465,-960.0082C52.3495,-1027.2791 88.7713,-1260 228.803,-1260 228.803,-1260 228.803,-1260 470.6588,-1260 510.0587,-1260 521.53,-1268.2692 553.7117,-1291 594.9398,-1320.1204 584.9381,-1349.6677 626.7117,-1378 643.0139,-1389.0566 663.7101,-1396.3098 681.2205,-1400.9095"/>
<polygon fill="#8b4513" stroke="#8b4513" points="680.5604,-1404.351 691.1049,-1403.3198 682.2188,-1397.5503 680.5604,-1404.351"/>
</g>
<!-- (*blitter.com/go/hkexsh/hkexnet.Conn).Close -->
<g id="node34" class="node">
<title>(*blitter.com/go/hkexsh/hkexnet.Conn).Close</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1607" rx="27" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1603.3" font-family="Verdana" font-size="14.00" fill="#000000">Close</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).Close -->
<g id="edge9" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).Close</title>
<path fill="none" stroke="#8b4513" d="M44.5948,-960.1009C49.453,-1010.846 66.2337,-1158.3227 106,-1274 117.6963,-1308.0238 114.879,-1323.5583 143,-1346 173.7708,-1370.5564 189.4348,-1368 228.803,-1368 228.803,-1368 228.803,-1368 470.6588,-1368 524.751,-1368 552.0227,-1350.1962 590.7117,-1388 651.8722,-1447.7611 570.3353,-1512.7061 626.7117,-1577 636.3206,-1587.9583 650.0182,-1594.9286 663.868,-1599.3574"/>
<polygon fill="#8b4513" stroke="#8b4513" points="679.9245,-1606.4919 690.4443,-1605.2332 681.4356,-1599.6569 679.9245,-1606.4919"/>
<polyline fill="none" stroke="#8b4513" points="680.6801,-1603.0744 675.798,-1601.995 "/>
<polygon fill="none" stroke="#8b4513" points="664.0809,-1599.4044 670.8029,-1596.794 675.798,-1601.995 669.0759,-1604.6054 664.0809,-1599.4044"/>
</g>
<!-- (*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff -->
<g id="node35" class="node">
<title>(*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1668" rx="47.7038" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1664.3" font-family="Verdana" font-size="14.00" fill="#000000">SetupChaff</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff -->
<g id="edge27" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff</title>
<path fill="none" stroke="#8b4513" d="M44.6727,-960.338C51.7796,-1034.0487 81.9442,-1307.4829 143,-1364 172.7559,-1391.5439 188.2557,-1395 228.803,-1395 228.803,-1395 228.803,-1395 470.6588,-1395 524.751,-1395 552.559,-1376.6551 590.7117,-1415 661.5227,-1486.1676 561.592,-1561.5904 626.7117,-1638 635.7196,-1648.5696 648.5365,-1655.4347 661.7095,-1659.8878"/>
<polygon fill="#8b4513" stroke="#8b4513" points="660.7332,-1663.2489 671.3149,-1662.7225 662.7146,-1656.5351 660.7332,-1663.2489"/>
</g>
<!-- (*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff -->
<g id="node36" class="node">
<title>(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1729" rx="52.0048" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1725.3" font-family="Verdana" font-size="14.00" fill="#000000">EnableChaff</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff -->
<g id="edge28" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff</title>
<path fill="none" stroke="#8b4513" d="M44.498,-960.1772C51.1075,-1035.853 80.163,-1324.8132 143,-1386 172.629,-1414.8509 187.4478,-1422 228.803,-1422 228.803,-1422 228.803,-1422 470.6588,-1422 524.751,-1422 552.9614,-1403.2589 590.7117,-1442 671.2044,-1524.6053 552.8199,-1610.4409 626.7117,-1699 634.8488,-1708.7523 646.2326,-1715.3547 658.1943,-1719.8191"/>
<polygon fill="#8b4513" stroke="#8b4513" points="657.2681,-1723.1982 667.8603,-1722.9604 659.4317,-1716.541 657.2681,-1723.1982"/>
</g>
<!-- (*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff -->
<g id="node37" class="node">
<title>(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1790" rx="54.4038" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1786.3" font-family="Verdana" font-size="14.00" fill="#000000">DisableChaff</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff -->
<g id="edge29" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff</title>
<path fill="none" stroke="#8b4513" d="M44.3088,-960.0744C50.3226,-1038.0734 77.8481,-1344.8767 143,-1411 172.2724,-1440.7088 187.0958,-1449 228.803,-1449 228.803,-1449 228.803,-1449 470.6588,-1449 524.751,-1449 553.2742,-1429.9565 590.7117,-1469 680.9065,-1563.0639 544.0292,-1659.2691 626.7117,-1760 630.8869,-1765.0866 635.9463,-1769.3171 641.5158,-1772.8348"/>
<polygon fill="#8b4513" stroke="#8b4513" points="655.7578,-1782.8612 666.3233,-1783.6488 658.555,-1776.4444 655.7578,-1782.8612"/>
<polyline fill="none" stroke="#8b4513" points="657.1564,-1779.6528 652.5729,-1777.6548 "/>
<polygon fill="none" stroke="#8b4513" points="641.5726,-1772.8596 648.6712,-1771.5904 652.5729,-1777.6548 645.4744,-1778.9239 641.5726,-1772.8596"/>
</g>
<!-- (*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff -->
<g id="node38" class="node">
<title>(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1851" rx="64.2048" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1847.3" font-family="Verdana" font-size="14.00" fill="#000000">ShutdownChaff</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff -->
<g id="edge30" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff</title>
<path fill="none" stroke="#8b4513" d="M44.12,-960.2259C49.4561,-1041.07 74.9231,-1366.3871 143,-1437 172.0736,-1467.1566 186.9139,-1476 228.803,-1476 228.803,-1476 228.803,-1476 470.6588,-1476 638.9487,-1476 501.6024,-1708.4427 626.7117,-1821 630.3115,-1824.2386 634.2697,-1827.1286 638.4578,-1829.7076"/>
<polygon fill="#8b4513" stroke="#8b4513" points="652.6244,-1840.0513 663.1733,-1841.0365 655.5412,-1833.6879 652.6244,-1840.0513"/>
<polyline fill="none" stroke="#8b4513" points="654.0828,-1836.8696 649.5375,-1834.7862 "/>
<polygon fill="none" stroke="#8b4513" points="638.6289,-1829.7859 645.75,-1828.6499 649.5375,-1834.7862 642.4165,-1835.9223 638.6289,-1829.7859"/>
</g>
<!-- (blitter.com/go/hkexsh/hkexnet.Conn).Read -->
<g id="node41" class="node">
<title>(blitter.com/go/hkexsh/hkexnet.Conn).Read</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1286" rx="27" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1282.3" font-family="Verdana" font-size="14.00" fill="#000000">Read</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(blitter.com/go/hkexsh/hkexnet.Conn).Read -->
<g id="edge24" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;(blitter.com/go/hkexsh/hkexnet.Conn).Read</title>
<path fill="none" stroke="#8b4513" d="M45.6257,-960.2317C52.8319,-1003.4935 76.9724,-1113.0533 143,-1171 173.955,-1198.1665 187.6177,-1206 228.803,-1206 228.803,-1206 228.803,-1206 470.6588,-1206 524.751,-1206 541.5417,-1203.4551 590.7117,-1226 609.6439,-1234.6806 608.5044,-1245.8872 626.7117,-1256 643.9318,-1265.5644 664.6947,-1272.7092 682.0126,-1277.6219"/>
<polygon fill="#8b4513" stroke="#8b4513" points="681.1912,-1281.0254 691.7582,-1280.2578 683.0189,-1274.2682 681.1912,-1281.0254"/>
</g>
<!-- blitter.com/go/hkexsh/logger.New -->
<g id="node44" class="node">
<title>blitter.com/go/hkexsh/logger.New</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-984" rx="27" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-980.3" font-family="Verdana" font-size="14.00" fill="#000000">New</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/logger.New -->
<g id="edge6" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;blitter.com/go/hkexsh/logger.New</title>
<path fill="none" stroke="#8b4513" d="M66.6825,-950.695C101.6403,-962.7302 169.3427,-983 228.803,-983 228.803,-983 228.803,-983 470.6588,-983 544.9527,-983 631.8252,-983.4587 680.1572,-983.7548"/>
<polygon fill="#8b4513" stroke="#8b4513" points="680.4181,-987.2564 690.4398,-983.8189 680.4618,-980.2565 680.4181,-987.2564"/>
</g>
<!-- github.com/mattn/go&#45;isatty.IsTerminal -->
<g id="node46" class="node">
<title>github.com/mattn/go&#45;isatty.IsTerminal</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="228.803" cy="-1520" rx="45.2034" ry="18"/>
<text text-anchor="middle" x="228.803" y="-1516.3" font-family="Verdana" font-size="14.00" fill="#000000">IsTerminal</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main&#45;&gt;github.com/mattn/go&#45;isatty.IsTerminal -->
<g id="edge10" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main&#45;&gt;github.com/mattn/go&#45;isatty.IsTerminal</title>
<path fill="none" stroke="#8b4513" d="M44.0247,-960.199C49.2072,-1049.6818 73.5627,-1440.4002 106,-1483 121.8276,-1503.7864 148.9439,-1513.2911 173.676,-1517.4891"/>
<polygon fill="#8b4513" stroke="#8b4513" points="173.33,-1520.9754 183.727,-1518.9378 174.3286,-1514.047 173.33,-1520.9754"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main$1&#45;&gt;blitter.com/go/hkexsh.Restore -->
<g id="edge12" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main$1&#45;&gt;blitter.com/go/hkexsh.Restore</title>
<path fill="none" stroke="#8b4513" d="M263.5546,-245.2133C350.231,-245.7455 575.9308,-247.1311 672.5311,-247.7241"/>
<polygon fill="#8b4513" stroke="#8b4513" points="672.5422,-251.2242 682.5635,-247.7857 672.5852,-244.2243 672.5422,-251.2242"/>
</g>
<!-- (blitter.com/go/hkexsh.Session).Op -->
<g id="node24" class="node">
<title>(blitter.com/go/hkexsh.Session).Op</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-593" rx="27" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-589.3" font-family="Verdana" font-size="14.00" fill="#000000">Op</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).Op -->
<g id="edge16" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).Op</title>
<path fill="none" stroke="#8b4513" d="M509.9106,-805.9919C536.9862,-792.8618 571.4491,-771.5992 590.7117,-742 620.6192,-696.0439 588.5863,-663.4065 626.7117,-624 640.8754,-609.3604 662.2287,-601.6333 680.6648,-597.5552"/>
<polygon fill="#8b4513" stroke="#8b4513" points="681.3896,-600.98 690.5428,-595.6443 680.06,-594.1074 681.3896,-600.98"/>
</g>
<!-- (blitter.com/go/hkexsh.Session).Who -->
<g id="node25" class="node">
<title>(blitter.com/go/hkexsh.Session).Who</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-654" rx="27" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-650.3" font-family="Verdana" font-size="14.00" fill="#000000">Who</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).Who -->
<g id="edge17" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).Who</title>
<path fill="none" stroke="#8b4513" d="M523.9371,-808.1051C546.8675,-799.8846 572.5261,-787.384 590.7117,-769 619.2764,-740.1238 596.9241,-712.613 626.7117,-685 641.4786,-671.3112 662.547,-663.6375 680.6676,-659.3507"/>
<polygon fill="#8b4513" stroke="#8b4513" points="681.584,-662.7346 690.6485,-657.2496 680.1419,-655.8848 681.584,-662.7346"/>
</g>
<!-- (blitter.com/go/hkexsh.Session).ConnHost -->
<g id="node26" class="node">
<title>(blitter.com/go/hkexsh.Session).ConnHost</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-715" rx="42.8032" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-711.3" font-family="Verdana" font-size="14.00" fill="#000000">ConnHost</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).ConnHost -->
<g id="edge18" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).ConnHost</title>
<path fill="none" stroke="#8b4513" d="M546.0877,-814.4544C561.7008,-810.5484 577.4225,-804.7071 590.7117,-796 613.6162,-780.9929 604.7147,-762.3083 626.7117,-746 638.9914,-736.896 654.1362,-730.3348 668.5114,-725.6635"/>
<polygon fill="#8b4513" stroke="#8b4513" points="669.7261,-728.9531 678.2959,-722.7234 667.7117,-722.2492 669.7261,-728.9531"/>
</g>
<!-- (blitter.com/go/hkexsh.Session).TermType -->
<g id="node27" class="node">
<title>(blitter.com/go/hkexsh.Session).TermType</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-471" rx="42.8032" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-467.3" font-family="Verdana" font-size="14.00" fill="#000000">TermType</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).TermType -->
<g id="edge19" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).TermType</title>
<path fill="none" stroke="#8b4513" d="M510.9033,-806.2102C526.1338,-798.494 542.4849,-787.8382 553.7117,-774 587.0062,-732.9614 576.6392,-711.9378 590.7117,-661 610.0062,-591.1609 578.2775,-555.8879 626.7117,-502 636.9302,-490.6309 651.4922,-483.4293 665.9678,-478.8683"/>
<polygon fill="#8b4513" stroke="#8b4513" points="667.217,-482.1543 675.9212,-476.1138 665.3499,-475.4078 667.217,-482.1543"/>
</g>
<!-- (blitter.com/go/hkexsh.Session).Cmd -->
<g id="node28" class="node">
<title>(blitter.com/go/hkexsh.Session).Cmd</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-776" rx="27" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-772.3" font-family="Verdana" font-size="14.00" fill="#000000">Cmd</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).Cmd -->
<g id="edge20" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).Cmd</title>
<path fill="none" stroke="#8b4513" d="M498.7435,-839.0781C524.0031,-852.0568 561.5174,-865.2964 590.7117,-850 615.6102,-836.9544 603.5367,-813.9073 626.7117,-798 642.4662,-787.1861 662.9517,-781.6664 680.472,-778.8581"/>
<polygon fill="#8b4513" stroke="#8b4513" points="680.9552,-782.3247 690.3869,-777.4985 680.0041,-775.3896 680.9552,-782.3247"/>
</g>
<!-- (blitter.com/go/hkexsh.Session).AuthCookie -->
<g id="node29" class="node">
<title>(blitter.com/go/hkexsh.Session).AuthCookie</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-532" rx="49.5034" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-528.3" font-family="Verdana" font-size="14.00" fill="#000000">AuthCookie</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).AuthCookie -->
<g id="edge21" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh.Session).AuthCookie</title>
<path fill="none" stroke="#8b4513" d="M509.859,-805.9013C525.1156,-798.0881 541.764,-787.4444 553.7117,-774 581.3519,-742.8973 576.704,-727.1809 590.7117,-688 610.1745,-633.5608 586.8398,-604.8646 626.7117,-563 636.0449,-553.2003 648.6002,-546.4985 661.3907,-541.9152"/>
<polygon fill="#8b4513" stroke="#8b4513" points="662.6983,-545.1722 671.168,-538.807 660.5776,-538.5011 662.6983,-545.1722"/>
</g>
<!-- (blitter.com/go/hkexsh/hkexnet.Conn).Write -->
<g id="node40" class="node">
<title>(blitter.com/go/hkexsh/hkexnet.Conn).Write</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1225" rx="27" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1221.3" font-family="Verdana" font-size="14.00" fill="#000000">Write</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh/hkexnet.Conn).Write -->
<g id="edge22" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.sendSessionParams&#45;&gt;(blitter.com/go/hkexsh/hkexnet.Conn).Write</title>
<path fill="none" stroke="#8b4513" stroke-dasharray="5,2" d="M509.4592,-838.1038C525.4039,-846.5704 542.6798,-858.4653 553.7117,-874 596.0686,-933.6448 577.5156,-1140.8581 626.7117,-1195 640.3648,-1210.0256 661.6955,-1217.5414 680.2473,-1221.2936"/>
<polygon fill="#8b4513" stroke="#8b4513" points="679.7513,-1224.7597 690.2015,-1223.0147 680.944,-1217.862 679.7513,-1224.7597"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.main$2&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket -->
<g id="edge31" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.main$2&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket</title>
<path fill="none" stroke="#8b4513" d="M260.9896,-1308.2144C330.7869,-1295.5385 497.2868,-1276.6313 590.7117,-1361 643.1993,-1408.3997 579.0309,-1463.7676 626.7117,-1516 635.627,-1525.7663 647.7855,-1532.3594 660.3043,-1536.8084"/>
<polygon fill="#8b4513" stroke="#8b4513" points="659.3111,-1540.1649 669.9,-1539.8097 661.4008,-1533.4841 659.3111,-1540.1649"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode$1 -->
<g id="node9" class="node">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode$1</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-dasharray="1,5" cx="470.6588" cy="-627" rx="64.8047" ry="18"/>
<text text-anchor="middle" x="470.6588" y="-623.3" font-family="Verdana" font-size="14.00" fill="#000000">doShellMode$1</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode$1&#45;&gt;blitter.com/go/hkexsh.Restore -->
<g id="edge34" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode$1&#45;&gt;blitter.com/go/hkexsh.Restore</title>
<path fill="none" stroke="#8b4513" d="M493.5202,-609.9069C521.4158,-587.6774 567.699,-546.0798 590.7117,-499 635.9562,-406.4384 556.9036,-345.7729 626.7117,-270 638.3556,-257.3612 655.9163,-251.4171 672.4977,-248.7905"/>
<polygon fill="#8b4513" stroke="#8b4513" points="673.1313,-252.2392 682.6337,-247.5536 672.2833,-245.2907 673.1313,-252.2392"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode$1&#45;&gt;(*blitter.com/go/hkexsh.Session).SetStatus -->
<g id="edge36" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode$1&#45;&gt;(*blitter.com/go/hkexsh.Session).SetStatus</title>
<path fill="none" stroke="#8b4513" d="M510.3776,-612.6347C537.3121,-600.8002 571.4067,-581.3242 590.7117,-553 641.5783,-478.3687 566.8317,-420.6137 626.7117,-353 636.7486,-341.6669 651.2592,-334.8614 665.7437,-330.7936"/>
<polygon fill="#8b4513" stroke="#8b4513" points="666.8094,-334.137 675.7119,-328.3928 665.1703,-327.3316 666.8094,-334.137"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode$1&#45;&gt;(blitter.com/go/hkexsh.Session).Status -->
<g id="edge37" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode$1&#45;&gt;(blitter.com/go/hkexsh.Session).Status</title>
<path fill="none" stroke="#8b4513" d="M525.1723,-617.1911C548.3469,-610.398 573.8549,-599.0063 590.7117,-580 633.056,-532.2563 583.3276,-487.8008 626.7117,-441 639.9252,-426.7459 659.9593,-419.0455 677.8459,-414.8858"/>
<polygon fill="#8b4513" stroke="#8b4513" points="678.677,-418.2886 687.7822,-412.8715 677.2861,-411.4282 678.677,-418.2886"/>
</g>
<!-- (blitter.com/go/hkexsh/hkexnet.Conn).GetStatus -->
<g id="node42" class="node">
<title>(blitter.com/go/hkexsh/hkexnet.Conn).GetStatus</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1164" rx="43.4031" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1160.3" font-family="Verdana" font-size="14.00" fill="#000000">GetStatus</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode$1&#45;&gt;(blitter.com/go/hkexsh/hkexnet.Conn).GetStatus -->
<g id="edge35" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode$1&#45;&gt;(blitter.com/go/hkexsh/hkexnet.Conn).GetStatus</title>
<path fill="none" stroke="#8b4513" d="M502.7095,-642.6672C520.5429,-653.0584 541.5367,-668.3944 553.7117,-688 652.5095,-847.0956 524.6188,-945.9987 626.7117,-1103 638.9294,-1121.7886 659.1783,-1136.2207 677.4529,-1146.3188"/>
<polygon fill="#8b4513" stroke="#8b4513" points="676.017,-1149.5179 686.4981,-1151.0659 679.27,-1143.3196 676.017,-1149.5179"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode&#45;&gt;blitter.com/go/hkexsh/hkexsh.doShellMode$1 -->
<g id="edge38" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode&#45;&gt;blitter.com/go/hkexsh/hkexsh.doShellMode$1</title>
<path fill="none" stroke="#000000" d="M267.9492,-715.1488C282.6855,-710.093 299.5215,-704.0541 314.606,-698 349.2751,-684.0856 387.4589,-666.7492 417.3781,-652.6906"/>
<polygon fill="#000000" stroke="#000000" points="430.9178,-650.1392 438.4514,-642.6897 427.9166,-643.8152 430.9178,-650.1392"/>
<polyline fill="none" stroke="#000000" points="429.4172,-646.9772 424.9,-649.1209 "/>
<ellipse fill="none" stroke="#000000" cx="421.2863" cy="-650.8359" rx="4" ry="4"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.handleTermResizes -->
<g id="node13" class="node">
<title>blitter.com/go/hkexsh/hkexsh.handleTermResizes</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width=".5" cx="470.6588" cy="-904" rx="80.7059" ry="18"/>
<text text-anchor="middle" x="470.6588" y="-900.3" font-family="Verdana" font-size="14.00" fill="#000000">handleTermResizes</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode&#45;&gt;blitter.com/go/hkexsh/hkexsh.handleTermResizes -->
<g id="edge42" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode&#45;&gt;blitter.com/go/hkexsh/hkexsh.handleTermResizes</title>
<path fill="none" stroke="#000000" d="M248.7823,-744.96C278.3343,-769.7579 335.7964,-816.8838 387.606,-853 401.9746,-863.0163 418.3027,-873.2711 432.6563,-881.9337"/>
<polygon fill="#000000" stroke="#000000" points="430.9243,-884.976 441.303,-887.1053 434.5174,-878.9685 430.9243,-884.976"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode$2 -->
<g id="node14" class="node">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode$2</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-dasharray="1,5" cx="470.6588" cy="-718" rx="64.8047" ry="18"/>
<text text-anchor="middle" x="470.6588" y="-714.3" font-family="Verdana" font-size="14.00" fill="#000000">doShellMode$2</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode&#45;&gt;blitter.com/go/hkexsh/hkexsh.doShellMode$2 -->
<g id="edge45" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode&#45;&gt;blitter.com/go/hkexsh/hkexsh.doShellMode$2</title>
<path fill="none" stroke="#000000" d="M283.3817,-725.7433C312.7547,-724.5289 349.6919,-723.0016 382.9834,-721.6251"/>
<polygon fill="#000000" stroke="#000000" points="396.5733,-724.5662 406.4202,-720.6561 396.2841,-717.5722 396.5733,-724.5662"/>
<polyline fill="none" stroke="#000000" points="396.4287,-721.0692 391.433,-721.2758 "/>
<ellipse fill="none" stroke="#000000" cx="387.4364" cy="-721.4411" rx="4" ry="4"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.handleTermResizes$1 -->
<g id="node11" class="node">
<title>blitter.com/go/hkexsh/hkexsh.handleTermResizes$1</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-dasharray="1,5" cx="717.4649" cy="-923" rx="90.507" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-919.3" font-family="Verdana" font-size="14.00" fill="#000000">handleTermResizes$1</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.GetSize -->
<g id="node12" class="node">
<title>blitter.com/go/hkexsh/hkexsh.GetSize</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-width="1.5" cx="915.8692" cy="-923" rx="34.8031" ry="18"/>
<text text-anchor="middle" x="915.8692" y="-919.3" font-family="Verdana" font-size="14.00" fill="#000000">GetSize</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.handleTermResizes$1&#45;&gt;blitter.com/go/hkexsh/hkexsh.GetSize -->
<g id="edge39" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.handleTermResizes$1&#45;&gt;blitter.com/go/hkexsh/hkexsh.GetSize</title>
<path fill="none" stroke="#000000" d="M808.2478,-923C830.0141,-923 852.3249,-923 870.9481,-923"/>
<polygon fill="#000000" stroke="#000000" points="871.1707,-926.5001 881.1707,-923 871.1706,-919.5001 871.1707,-926.5001"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.handleTermResizes$1&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket -->
<g id="edge40" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.handleTermResizes$1&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket</title>
<path fill="none" stroke="#8b4513" d="M645.682,-934.1032C630.3101,-940.2811 616.3919,-949.8161 608.7117,-964.5 594.8335,-991.0342 594.8335,-1476.9658 608.7117,-1503.5 618.5215,-1522.2555 638.4208,-1532.7817 658.5474,-1538.6713"/>
<polygon fill="#8b4513" stroke="#8b4513" points="657.8461,-1542.1048 668.4027,-1541.2058 659.5897,-1535.3254 657.8461,-1542.1048"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.handleTermResizes&#45;&gt;blitter.com/go/hkexsh/hkexsh.handleTermResizes$1 -->
<g id="edge41" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.handleTermResizes&#45;&gt;blitter.com/go/hkexsh/hkexsh.handleTermResizes$1</title>
<path fill="none" stroke="#000000" d="M547.3969,-909.9076C567.034,-911.4193 588.52,-913.0734 609.41,-914.6816"/>
<polygon fill="#000000" stroke="#000000" points="622.3727,-919.1898 632.6119,-916.4677 622.9101,-912.2104 622.3727,-919.1898"/>
<polyline fill="none" stroke="#000000" points="622.6414,-915.7001 617.6561,-915.3163 "/>
<ellipse fill="none" stroke="#000000" cx="613.6679" cy="-915.0093" rx="4" ry="4"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode$2$1 -->
<g id="node15" class="node">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode$2$1</title>
<ellipse fill="#add8e6" stroke="#000000" stroke-dasharray="1,5" cx="717.4649" cy="-862" rx="74.6057" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-858.3" font-family="Verdana" font-size="14.00" fill="#000000">doShellMode$2$1</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode$2&#45;&gt;blitter.com/go/hkexsh/hkexsh.doShellMode$2$1 -->
<g id="edge43" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode$2&#45;&gt;blitter.com/go/hkexsh/hkexsh.doShellMode$2$1</title>
<path fill="none" stroke="#000000" d="M498.9706,-734.5186C543.5507,-760.5291 630.1413,-811.0507 679.8825,-840.0724"/>
<polygon fill="#000000" stroke="#000000" points="678.3219,-843.214 688.7231,-845.2305 681.8495,-837.1679 678.3219,-843.214"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doShellMode$2&#45;&gt;blitter.com/go/hkexsh.Restore -->
<g id="edge44" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doShellMode$2&#45;&gt;blitter.com/go/hkexsh.Restore</title>
<path fill="none" stroke="#8b4513" d="M502.6566,-702.1707C520.2436,-691.8943 541.0068,-676.8943 553.7117,-658 592.5086,-600.3027 577.2343,-574.2095 590.7117,-506 600.9952,-453.9551 590.855,-309.0988 626.7117,-270 638.3268,-257.3347 655.8825,-251.3861 672.468,-248.7632"/>
<polygon fill="#8b4513" stroke="#8b4513" points="673.1035,-252.2118 682.6076,-247.5296 672.2581,-245.263 673.1035,-252.2118"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doCopyMode&#45;&gt;(blitter.com/go/hkexsh.Session).Cmd -->
<g id="edge48" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doCopyMode&#45;&gt;(blitter.com/go/hkexsh.Session).Cmd</title>
<path fill="none" stroke="#8b4513" d="M479.7577,-1081.8994C512.1695,-1017.4851 620.4028,-802.9557 626.7117,-798 641.8454,-786.1124 662.4567,-780.5189 680.2122,-777.9385"/>
<polygon fill="#8b4513" stroke="#8b4513" points="680.7564,-781.3985 690.2733,-776.7425 679.9301,-774.4475 680.7564,-781.3985"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doCopyMode&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket -->
<g id="edge49" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doCopyMode&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket</title>
<path fill="none" stroke="#8b4513" d="M518.8944,-1109.4472C531.8908,-1114.1978 544.8012,-1121.3227 553.7117,-1132 560.6686,-1140.3362 619.5548,-1507.835 626.7117,-1516 635.4282,-1525.9442 647.5116,-1532.6044 660.0213,-1537.0615"/>
<polygon fill="#8b4513" stroke="#8b4513" points="659.0333,-1540.4196 669.622,-1540.0584 661.1192,-1533.7376 659.0333,-1540.4196"/>
</g>
<!-- (*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus -->
<g id="node39" class="node">
<title>(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus</title>
<ellipse fill="#ffe4b5" stroke="#000000" stroke-width="1.5" cx="717.4649" cy="-1485" rx="42.2035" ry="18"/>
<text text-anchor="middle" x="717.4649" y="-1481.3" font-family="Verdana" font-size="14.00" fill="#000000">SetStatus</text>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doCopyMode&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus -->
<g id="edge51" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doCopyMode&#45;&gt;(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus</title>
<path fill="none" stroke="#8b4513" d="M518.5144,-1109.7736C531.5001,-1114.5334 544.4999,-1121.5815 553.7117,-1132 598.6232,-1182.7947 575.9411,-1213.8263 590.7117,-1280 608.7697,-1360.9013 569.3893,-1403.123 626.7117,-1463 636.7256,-1473.4601 650.7996,-1479.2992 664.8814,-1482.4685"/>
<polygon fill="#8b4513" stroke="#8b4513" points="664.6123,-1485.9772 675.0787,-1484.3323 665.8709,-1479.0913 664.6123,-1485.9772"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doCopyMode&#45;&gt;(blitter.com/go/hkexsh/hkexnet.Conn).Read -->
<g id="edge50" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doCopyMode&#45;&gt;(blitter.com/go/hkexsh/hkexnet.Conn).Read</title>
<path fill="none" stroke="#8b4513" d="M524.6131,-1105.3172C547.6771,-1110.1897 573.2533,-1119.4507 590.7117,-1137 629.6821,-1176.1733 588.1409,-1216.4332 626.7117,-1256 640.8833,-1270.5375 662.237,-1278.0317 680.6713,-1281.8944"/>
<polygon fill="#8b4513" stroke="#8b4513" points="680.0836,-1285.3449 690.5481,-1283.6884 681.3346,-1278.4576 680.0836,-1285.3449"/>
</g>
<!-- blitter.com/go/hkexsh/hkexsh.doCopyMode&#45;&gt;(blitter.com/go/hkexsh/hkexnet.Conn).GetStatus -->
<g id="edge52" class="edge">
<title>blitter.com/go/hkexsh/hkexsh.doCopyMode&#45;&gt;(blitter.com/go/hkexsh/hkexnet.Conn).GetStatus</title>
<path fill="none" stroke="#8b4513" d="M526.8469,-1100.9705C547.1963,-1102.2905 570.2081,-1104.9189 590.7117,-1110 622.6218,-1117.9078 656.8035,-1132.8895 681.6199,-1145.0701"/>
<polygon fill="#8b4513" stroke="#8b4513" points="680.1382,-1148.2423 690.6482,-1149.5807 683.2667,-1141.9803 680.1382,-1148.2423"/>
</g>
</g>
</svg>