2023-01-27 21:30:44 +00:00
|
|
|
<?xml version="1.0" encoding="utf-8"?><svg id="d2-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="959" height="822" viewBox="-90 -90 959 822"><style type="text/css"><![CDATA[.shape {
|
2022-11-12 18:31:11 +00:00
|
|
|
shape-rendering: geometricPrecision;
|
|
|
|
|
stroke-linejoin: round;
|
2022-11-03 13:54:49 +00:00
|
|
|
}
|
|
|
|
|
.connection {
|
2022-11-12 18:31:11 +00:00
|
|
|
stroke-linecap: round;
|
|
|
|
|
stroke-linejoin: round;
|
2022-11-03 13:54:49 +00:00
|
|
|
}
|
2022-12-05 19:22:16 +00:00
|
|
|
.blend {
|
|
|
|
|
mix-blend-mode: multiply;
|
2022-12-05 20:09:32 +00:00
|
|
|
opacity: 0.5;
|
2022-12-05 19:22:16 +00:00
|
|
|
}
|
|
|
|
|
|
2023-01-27 21:30:44 +00:00
|
|
|
.sketch-overlay-bright {
|
|
|
|
|
fill: url(#streaks-bright);
|
|
|
|
|
mix-blend-mode: darken;
|
|
|
|
|
}
|
|
|
|
|
.sketch-overlay-normal {
|
|
|
|
|
fill: url(#streaks-normal);
|
|
|
|
|
mix-blend-mode: color-burn;
|
|
|
|
|
}
|
|
|
|
|
.sketch-overlay-dark {
|
|
|
|
|
fill: url(#streaks-dark);
|
|
|
|
|
mix-blend-mode: overlay;
|
|
|
|
|
}
|
|
|
|
|
.sketch-overlay-darker {
|
|
|
|
|
fill: url(#streaks-darker);
|
|
|
|
|
mix-blend-mode: lighten;
|
|
|
|
|
}
|
2023-01-28 00:43:24 +00:00
|
|
|
.fill-N1{fill:#0A0F25;}.fill-N2{fill:#676C7E;}.fill-N3{fill:#9499AB;}.fill-N4{fill:#CFD2DD;}.fill-N5{fill:#DEE1EB;}.fill-N6{fill:#EEF1F8;}.fill-N7{fill:#FFFFFF;}.fill-B1{fill:#0D32B2;}.fill-B2{fill:#0D32B2;}.fill-B3{fill:#E3E9FD;}.fill-B4{fill:#E3E9FD;}.fill-B5{fill:#EDF0FD;}.fill-B6{fill:#F7F8FE;}.fill-AA2{fill:#4A6FF3;}.fill-AA4{fill:#EDF0FD;}.fill-AA5{fill:#F7F8FE;}.fill-AB4{fill:#EDF0FD;}.fill-AB5{fill:#F7F8FE;}.stroke-N1{stroke:#0A0F25;}.stroke-N2{stroke:#676C7E;}.stroke-N3{stroke:#9499AB;}.stroke-N4{stroke:#CFD2DD;}.stroke-N5{stroke:#DEE1EB;}.stroke-N6{stroke:#EEF1F8;}.stroke-N7{stroke:#FFFFFF;}.stroke-B1{stroke:#0D32B2;}.stroke-B2{stroke:#0D32B2;}.stroke-B3{stroke:#E3E9FD;}.stroke-B4{stroke:#E3E9FD;}.stroke-B5{stroke:#EDF0FD;}.stroke-B6{stroke:#F7F8FE;}.stroke-AA2{stroke:#4A6FF3;}.stroke-AA4{stroke:#EDF0FD;}.stroke-AA5{stroke:#F7F8FE;}.stroke-AB4{stroke:#EDF0FD;}.stroke-AB5{stroke:#F7F8FE;}.background-color-N1{background-color:#0A0F25;}.background-color-N2{background-color:#676C7E;}.background-color-N3{background-color:#9499AB;}.background-color-N4{background-color:#CFD2DD;}.background-color-N5{background-color:#DEE1EB;}.background-color-N6{background-color:#EEF1F8;}.background-color-N7{background-color:#FFFFFF;}.background-color-B1{background-color:#0D32B2;}.background-color-B2{background-color:#0D32B2;}.background-color-B3{background-color:#E3E9FD;}.background-color-B4{background-color:#E3E9FD;}.background-color-B5{background-color:#EDF0FD;}.background-color-B6{background-color:#F7F8FE;}.background-color-AA2{background-color:#4A6FF3;}.background-color-AA4{background-color:#EDF0FD;}.background-color-AA5{background-color:#F7F8FE;}.background-color-AB4{background-color:#EDF0FD;}.background-color-AB5{background-color:#F7F8FE;}.color-N1{color:#0A0F25;}.color-N2{color:#676C7E;}.color-N3{color:#9499AB;}.color-N4{color:#CFD2DD;}.color-N5{color:#DEE1EB;}.color-N6{color:#EEF1F8;}.color-N7{color:#FFFFFF;}.color-B1{color:#0D32B2;}.color-B2{color:#0D32B2;}.color-B3{color:#E3E9FD;}.color-B4{color:#E3E9FD;}.color-B5{color:#EDF0FD;}.color-B6{color:#F7F8FE;}.color-AA2{color:#4A6FF3;}.color-AA4{color:#EDF0FD;}.color-AA5{color:#F7F8FE;}.color-AB4{color:#EDF0FD;}.color-AB5{color:#F7F8FE;}text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}]]></style><script type="application/javascript"><![CDATA[window.addEventListener("DOMContentLoaded", () => {
|
2023-01-04 00:42:39 +00:00
|
|
|
if (document.documentElement.getAttribute("id") !== "d2-svg") {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
const svgEl = document.documentElement;
|
|
|
|
|
let width = parseInt(svgEl.getAttribute("width"), 10);
|
|
|
|
|
let height = parseInt(svgEl.getAttribute("height"), 10);
|
|
|
|
|
let ratio;
|
|
|
|
|
if (width > height) {
|
|
|
|
|
if (width > window.innerWidth) {
|
|
|
|
|
ratio = window.innerWidth / width;
|
|
|
|
|
}
|
|
|
|
|
} else if (height > window.innerHeight) {
|
|
|
|
|
ratio = window.innerHeight / height;
|
|
|
|
|
}
|
|
|
|
|
if (ratio) {
|
|
|
|
|
svgEl.setAttribute("width", width * ratio - 16);
|
|
|
|
|
svgEl.setAttribute("height", height * ratio - 16);
|
|
|
|
|
}
|
|
|
|
|
});
|
2023-01-27 21:30:44 +00:00
|
|
|
]]></script><style type="text/css"><![CDATA[
|
2022-11-03 13:54:49 +00:00
|
|
|
.text-bold {
|
|
|
|
|
font-family: "font-bold";
|
|
|
|
|
}
|
|
|
|
|
@font-face {
|
|
|
|
|
font-family: font-bold;
|
|
|
|
|
src: url("data:application/font-woff;base64,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AHQAZQAgAGcAQQBsAHQAZQByAG4AYQB0AGUAIABhAFMAdAByAGEAaQBnAGgAdAAgAGwAUwBsAGEAcwBoAGUAZAAgAHoAZQByAG8AUAByAGUAZgBlAHIAcgBlAGQAIABBAHQAaABhAGIAYQBzAGsAYQBuACAAbwBnAG8AbgBlAGsAcwBoAHQAdABwADoALwAvAHMAYwByAGkAcAB0AHMALgBzAGkAbAAuAG8AcgBnAC8ATwBGAEwAVABoAGkAcwAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABpAHMAIABsAGkAYwBlAG4AcwBlAGQAIAB1AG4AZABlAHIAIAB0AGgAZQAgAFMASQBMACAATwBwAGUAbgAgAEYAbwBuAHQAIABMAGkAYwBlAG4AcwBlACwAIABWAGUAcgBzAGkAbwBuACAAMQAuADEALgAgAFQAaABpAHMAIABsAGkAYwBlAG4AcwBlACAAaQBzACAAYQB2AGEAaQBsAGEAYgBsAGUAIAB3AGkAdABoACAAYQAgAEYAQQBRACAAYQB0ADoAIABoAHQAdABwADoALwAvAHMAYwByAGkAcAB0AHMALgBzAGkAbAAuAG8AcgBnAC8ATwBGAEwALgAgAFQAaABpAHMAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAaQBzACAAZABpAHMAdAByAGkAYgB1AHQAZQBkACAAbwBuACAAYQBuACAgGABBAFMAIABJAFMgGQAgAEIAQQBTAEkAUwAsACAAVwBJAFQASABPAFUAVAAgAFcAQQBSAFIAQQBOAFQASQBFAFMAIABPAFIAIABDAE8ATgBEAEkAVABJAE8ATgBTACAATwBGACAAQQBOAFkAIABLAEkATgBEACwAIABlAGkAdABoAGUAcgAgAGUAeABwAHIAZQBzAHMAIABvAHIAIABpAG0AcABsAGkAZQBkAC4AIABTAGUAZQAgAHQAaABlACAAUwBJAEwAIABPAHAAZQBuACAARgBvAG4AdAAgAEwAaQBjAGUAbgBzAGUAIABmAG8AcgAgAHQAaABlACAAcwBwAGUAYwBpAGYAaQBjACAAbABhAG4AZwB1AGEAZwBlACwAIABwAGUAcgBtAGkAcwBzAGkAbwBuAHMAIABhAG4AZAAgAGwAaQBtAGkAdABhAHQAaQBvAG4AcwAgAGcAbwB2AGUAcgBuAGkAbgBnACAAeQBvAHUAcgAgAHUAcwBlACAAbwBmACAAdABoAGkAcwAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUALgBoAHQAdABwADoALwAvAHcAdwB3AC4AYQBkAG8AYgBlAC4AYwBvAG0ALwB0AHkAcABlAFAAYQB1AGwAIABEAC4AIABIAHUAbgB0AEEAZABvAGIAZQAgAFMAeQBzAHQAZQBtAHMAIABJAG4AYwBvAHIAcABvAHIAYQB0AGUAZABTAG8AdQByAGMAZQAgAGkAcwAgAGEAIAB0AHIAYQBkAGUAbQBhAHIAawAgAG8AZgAgAEEAZABvAGIAZQAgAFMAeQBzAHQAZQBtAHMAIABJAG4AYwBvAHIAcABvAHIAYQB0AGUAZAAgAGkAbgAgAHQAaABlACAAVQBuAGkAdABlAG
|
|
|
|
|
}
|
|
|
|
|
.text-mono {
|
|
|
|
|
font-family: "font-mono";
|
|
|
|
|
}
|
|
|
|
|
@font-face {
|
|
|
|
|
font-family: font-mono;
|
|
|
|
|
src: url("data:application/font-woff;base64,AAEAAAAPAIAAAwBwQkFTRWUeXb0AAejUAAAARkRTSUcAAAABAAIdsAAAAAhHREVG8Yj03gAB6RwAAALqR1BPU6UIFdkAAewIAAAUXEdTVUIB/10FAAIAZAAAHUpPUy8yld/X+AAAAXgAAABgY21hcAdzcEIAAA4cAAAzZmdseWYb7v/zAABNyAABUS5oZWFkGanOOgAAAPwAAAA2aGhlYQYzAIgAAAE0AAAAJGhtdHgMtA+PAAAB2AAADEJsb2NhJ2DThAAAQYQAAAxCbWF4cAZUAmEAAAFYAAAAIG5hbWXcnQMfAAGe+AAAEM5wb3N0K4oCyQABr8gAADkMAAEAAAACCboWS6s0Xw889QADA+gAAAAA3B0N9wAAAADcHHNL/z/+OgMZBCQAAAADAAIAAAAAAAAAAQAAA9j+7wAAAlj/P/8/AxkAAQAAAAAAAAAAAAAAAAAAAAEAAQAABiAB+AAqAGUABgABAAAAAAAAAAAAAAAAAAMAAwADAlgBkAAFAAACigJYAAAASwKKAlgAAAFeADIBIwAAAgsFCQMEAwICBCAAAvcCADgDAAAAAAAAAABBREJPAEAAIP//Au7/BgAAA9gBEWAAAZ8AAAAAAeYClAAAACAAAwJYAD4AAAAgAGMAQQBXAHIAhQA1AE8AXwBRAGIAhgBIAFIAMABmADAAZABDACoATwArAAoANgAmAEEAUQBdAFAAPABEAGcASABdAFoANwBqAEoAOgBdADwAXQA8AJIARwBFAE0AMwAIAEAAMQBHACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIP///////wAaAGMAQQBBAEEAQQBBAFcAVwBXAFcADAAUAHIAcgByAHIAcgByAHIAcgBzAHIAcgByAHIAcgByAHIAcgByADUANQA1ADUANQA1ADUANQA1AE8ATwBPABsATwAKAF8AXwBfAF8AXwBfAF8AXwBfAF8AXwBfAFEAYgBiAGIAfACGAIYAhgA3AIYACgCGAEgASABIAFIAUgBSAFIAUgBSAFIAUgAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAkACQAIQBkAGQAZABkAGQAZABkAEMAQwBDAEMAQwBDAEMAQwBOACoAKgAqACoAKgAqAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwArAAoACgAKAAoAJgAmACYAJgAmACYAJgAmAEEAQQBBAEEAQQBBAAwAZQA7AFUAcABEAFkAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAEkAUQBRAFEAUQBRAFEAUQBRABEAEQARABQAXQBQAFAAUABQAFAANgA8ADwAPAA8AEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEQARABEAEgASABIAEgASABIAEgASP/v//UAXQBdACcAXQAUAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaADcAagBqAGoAagBKAEoASgBKAEoASgBKACMAOgA6ADoAXQBdAF0AXQBdAF0AXQBd/+oAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwANQA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8AAsAkgBmAJIAkgCDAIMAQABHAEcARwBHAEcARwBHAEcAWABnAEUARQBFAEUARQBFAEUATQBNAE0ATQBNAE0ATQBNAE0ATQBNAE0ATQBNAE0ATQBNAE0ATQBNAE0ATQBNADMACAAIAAgACAAxADEAMQAxADEAMQAxADEARwBHAEcARwBHAEcAPABdAF0ANwBd//gAUABeAF0AXQA9AFAAPAA8AD8APABzAEUAFgBbAD4APQA3ADwAPABOADMAPABNAF0AXQBdAFoAVgA4ABwASgBKAEoATwCUACoAKgA6//sAXQBgADwAIQAsAD8APwA/AJIAkgBjAGMARwA4ADgANgBFAAIAMgBNADMACAAxADkARwBHADsAAAAZADAARwBZAEcAUgBUADwAUgA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAOQA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPABjAGMAYwBjAGMAYwBjAGMAYwBjAGMAYwBjAGMAWgBjAFoAYwA4AGMAYwBjAGMAYwBjAGMAYwAt//wAYwBjACAAYwCHACsAcgBBAE8AMABfAGIAKwBIAFIARgAwAE8AZgBLACoAJgAaADYALAAmACQAGAAYABgAXwAYACgAJgAYADkAXQAwAEEAWwB0AF0ASABRAGQAOABUAC8AXABAABsAXQA8AEIATwAsADgANQAiAFoAXQBPACwAJQA5AFsAXQBRAFEAQABPAE8AIgBRAE8AZAA+AFsAkgBEAMUA2wDbAQEA8AEJAPAAiwELAPsA6ADoANwA0QEJAJAAigCQAJQAnwCfAH8AkQCLAJMA5QDkAPYA8ACqAKoAqgCsALYAtgAgAGMAYwCHABYAcgABAD4ATgBOAGYAAgBIAE8AMABPAGYAQQAqAC8AGgA2AE8AQQAoACYAEwA3AGIALgAsAB4AcgByAAUAhwBCAEMAXwBfAFH/+AAnAAUAZgBOAC8ASwAYADAAJgCHADwAAQA+AGYAEwBPAEEAJgAmADYAQQBbAF8AAQAg//8AcgA7AE4AMAAwAC8ALwBRAEsAaACSACoARAAGAD4AZABkAG4AHQBAAF0APABdAF0AUABCADEAIABAAF4AWAA6ADoAIwBGAH0APQAsADcARABEABQAkgBQAEcAWgBaADf/+QA6ABQAbgBkADEAZwApADwARgCiAEgABgA+AG4AIQBdAFAAMwAzAEAAWABdAAYASgBRABEARABFAGQAPAA8ADEAMQA8ADwAVQBjAGMAYwACACoARwBhAEUAOQAnADgATQBGAEQAQwBHAGEARwBhAEUAOQAnADgATgBGAEQAQwBHAGEARwBhAEUAOQAnADgATQBGAEQAQwBHAGEA2wDFANsAxQAgAOMA4wBtAHkA9QCCANEA2QBeAGYA2QBmANQAxQDTAFIAYABVAFUAVQBQAAAAUAAAANsAlwCLAKYAmgCLAHUApgCaAIsAdQCKAHUAmAAAADwAPAA+/2YA0AB6AOEAYgB4AGMAYwEHAGMBBwBUAH8AfwBbAEgAnABdAA4AVwAOAF4AdADhAGIA4QBiALoAYgDiAGIA4QBiAB4AHgBw//sADwAxADEAVwBoAIYAhgCGAFUAjQCvAJIAjgCUAI4AlwCcAJcAkQDsANMA+wD0AI0ArwCSAI4AlACOAJcAnACXAJEA7ADTAPsA9AChANAArQCsAKwArACwALcArwCtAOwA1QD7APQAoQDQAK0ArACsAKwAsAC3AK8ArQDsANUA+wD0AKMAiQCOAKMArAC1AIkAkQDGAJUArwCvAIwAvQDEAEYArwCOAKwAiQDzAKIApACfAIsANACfAIwAkgCRAJEAkQCOAK8AkgCgAIkAiQCtAPsA3gClAD0AOgBVAE0ANQA6AHEAMQBgAE4ALgAqABwAbQAqAFQAPQBgAGwALQA3ADcAKgBFABwAHAAcABsAMAAcABwAHwAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAUwAbAFUAVQBmAFUA1wBVAFUAeABrAFUAVQBVAG8AVQBMAEwAVQBVAGAAVf/8AK8BAQCpAPAAVABMALoBCQCZAD4AKwAmACAARgBPAEYANAAbAHQAGgARACEAHQAhAGAAUQBWAGcAEQAhAB0AIf/0AFUAPABKAD4AVwBJAEkAIQA+AD4APgA+AD4APgAqACoAFf/nAEQAM//n/+f/+gBNAAQACQAJAAUACQAJAB3/uf/g//z/5gAtADz/9P/9AGAAMQEBANEA2QDiAL4AoADKAMoAgACkAOwAkQCRAPkApwDsAKQA+QB/AJQApwCQAL4AxQDqAM0A0gA1AKQAsQDRAOwA6wEJAJ
|
2023-01-27 21:30:44 +00:00
|
|
|
}]]></style><rect x="-90.000000" y="-90.000000" width="959.000000" height="822.000000" class=" fill-N7" /><g id="hey"><g class="shape" ></g><g transform="translate(12.000000 238.000000)"><rect width="755.000000" height="166.000000" class="shape stroke-N1" style="fill:#ffffff" /><g transform="translate(6 6)"><text class="text-mono" x="0" y="1.000000em" xml:space="preserve"><tspan fill="#999988" font-style="italic">// RegisterHash registers a function that returns a new instance of the given
|
|
|
|
|
</tspan></text><text class="text-mono" x="0" y="2.000000em" xml:space="preserve"><tspan fill="#999988" font-style="italic"></tspan><tspan fill="#999988" font-style="italic">// hash function. This is intended to be called from the init function in
|
|
|
|
|
</tspan></text><text class="text-mono" x="0" y="3.000000em" xml:space="preserve"><tspan fill="#999988" font-style="italic"></tspan><tspan fill="#999988" font-style="italic">// packages that implement hash functions.
|
|
|
|
|
</tspan></text><text class="text-mono" x="0" y="4.000000em" xml:space="preserve"><tspan fill="#999988" font-style="italic"></tspan><tspan fill="#000000" font-weight="bold">func</tspan> <tspan fill="#990000" font-weight="bold">RegisterHash</tspan>(h Hash, f <tspan fill="#000000" font-weight="bold">func</tspan>() hash.Hash) {
|
|
|
|
|
</text><text class="text-mono" x="0" y="5.000000em" xml:space="preserve">    <tspan fill="#000000" font-weight="bold">if</tspan> h <tspan fill="#000000" font-weight="bold">>=</tspan> maxHash {
|
|
|
|
|
</text><text class="text-mono" x="0" y="6.000000em" xml:space="preserve">        <tspan fill="#0086b3">panic</tspan>(<tspan fill="#dd1144">"crypto: RegisterHash of unknown hash function"</tspan>)
|
|
|
|
|
</text><text class="text-mono" x="0" y="7.000000em" xml:space="preserve">    }
|
|
|
|
|
</text><text class="text-mono" x="0" y="8.000000em" xml:space="preserve">    hashes[h] = f
|
|
|
|
|
</text><text class="text-mono" x="0" y="9.000000em" xml:space="preserve">}</text></g></g></g><g id="x"><g class="shape" ><rect x="333.000000" y="12.000000" width="113.000000" height="126.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="389.500000" y="78.000000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">x</text></g><g id="y"><g class="shape" ><rect x="332.000000" y="504.000000" width="114.000000" height="126.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="389.000000" y="570.000000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">y</text></g><g id="(x -> hey)[0]"><marker id="mk-3488378134" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" class="connection fill-B1" stroke-width="2" /> </marker><path d="M 389.500000 140.000000 L 389.500000 234.000000" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#624120265)" /></g><g id="(hey -> y)[0]"><path d="M 389.500000 406.000000 L 389.500000 500.000000" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#624120265)" /></g><mask id="624120265" maskUnits="userSpaceOnUse" x="-100" y="-100" width="959" height="822">
|
|
|
|
|
<rect x="-100" y="-100" width="959" height="822" fill="white"></rect>
|
|
|
|
|
|
|
|
|
|
</mask></svg>
|