d2/e2etests/testdata/stable/li1/elk/sketch.exp.svg
Alexander Wang 9122ce1c2b
robust hash
2023-07-29 11:31:03 -07:00

856 lines
No EOL
37 KiB
XML

<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" d2Version="v0.6.0-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 381 374"><svg id="d2-svg" class="d2-2249318606" width="381" height="374" viewBox="11 11 381 374"><rect x="11.000000" y="11.000000" width="381.000000" height="374.000000" rx="0.000000" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
.d2-2249318606 .text {
font-family: "d2-2249318606-font-regular";
}
@font-face {
font-family: d2-2249318606-font-regular;
src: url("data:application/font-woff;base64,d09GRgABAAAAAA9kAAoAAAAAF3wAAguFAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAAA9AAAAGAAAABgXd/Vo2NtYXAAAAFUAAAAuwAAAQIFJgXrZ2x5ZgAAAhAAAAijAAALxNJWxX1oZWFkAAAKtAAAADYAAAA2G4Ue32hoZWEAAArsAAAAJAAAACQKhAXraG10eAAACxAAAACbAAAApEl9CL1sb2NhAAALrAAAAFQAAABUPZhAsm1heHAAAAwAAAAAIAAAACAAQQD2bmFtZQAADCAAAAMjAAAIFAbDVU1wb3N0AAAPRAAAAB0AAAAg/9EAMgADAgkBkAAFAAACigJYAAAASwKKAlgAAAFeADIBIwAAAgsFAwMEAwICBGAAAvcAAAADAAAAAAAAAABBREJPAEAAIP//Au7/BgAAA9gBESAAAZ8AAAAAAeYClAAAACAAA3icjM7LKgYBGIDhZ8z4ncb5fB6GiYWLkBRFFDtZSBbKQjZyRYgLEAk7LsM9yMLmk1lY/+/6WbxIpBLkMt+oFDINhdKyFavWrNu0bde+A4eOnTp36SqC2i39uw1bduzV7siJMxd/Lj6l8RNf8Rav8RLP8RSP8RAf8R73cRe3cRPX9UUzJSrzSnNapDKtGtq069CpS27Bom49evXpN2DQkGEjRo0ZN2HSlGkzZhX8AgAA//8BAAD//2ZBMPUAeJxsVm9sG+UZf97Xji+pndoX+3x2Yud8d4kvtuPY8fl8TezYJLEdJ80f55zQxrTuKC7pH2AlgqKirtVGBmjSmD8UUTGkoY0vSEzAkNpJfGODZaNjQptgG7RC+xCQYGPzokmI5jzd2QlpxYfT3Yfnnvf5/Z7f73leaIMVACzhy2CADrBCF1AAIsmS/awg8IQsyjJPG2QBkcQK+litITQdNyYSxuGJzyfOX7qEDl/El7cfGF1fXX278thj6o83P1Nj6L3PAIMBAHtxDTqABLATouD3C7zJZLCLdl7giXeZt5kun81o9f39ZuXmSvrLDPputSo/ODLyoFrGte2zGxsAAAjijS3cg18AL0Ab5/dL8URCjDlpwu/nOZOJcjidYiwh0yYTUpTvH5xdL6WOeMLdE8H0UTF2TzoywwwJxy2LV86cvqIM+xIebvycopyfGODi4ZievwyAbuIamHXcFEuJFE+xVBk9rv7tq6/QMK7l35v619ROLI7txGosiSRPsmS5hIaXltQ/4Zr6T2TfPosk9d2dePglrmlcaPHlkgasdeZ1XIO2Vh6qXEIMrm1fm4Ldc76HaxpmkRTtTictJhKyXTstnpB5wsAbBN7ppMhy9aKFthgtlOXCifl2gzF+Qb4QNxoIXFN/zuU4LsehyvZZdGrwTOhZ9RW09GzozKD6HABgndcT+AWw3sGsk3KYTEIskZDiGsMawWhWuTQ1dUkpXSwULpaSh6KnDx8+HT1sWXr+1KnnFhefO3Xq+aXpyfPK488887hyfhL0/BoGs86VQ0fRzMzzJCnG9Nx8+c2Zh9JPPvDA8btLh+6u4FrfcmG1qt5ChfH8lKzzEGxsoS/xCxDWKxRkvddS3O8XhCF8uxK0Omm6F2vVI1vuXCjGHxPHC95hpsKMBaRKMlnlw73TQ/IkG+s+6h/rS1Qt0uBofzgZ5QY8+wOdwYlobCEc7kt42fggE+g2D9jC48Px5Rgg8ACgW7gGhIaEl1iKJ//xDvrkHTyTz29fhR0+0euoDt3QB0BzGp1yXC+NEPRCKZLXDCDEErKkC/etscWf/JQMDQRnvD7uvtGVYpYwcItOPs2fvzdmmR4vLpPMAd7nGHEGHrxH/WDUE5zgmKesqUigHzAojS30Nd4AO/ia7PAET4oU0Tyr2cNmCwnK6UQBbtpnICYUzC4MHDuePJZPLSRzzF28L2NhvTG88dZhr/Dkw6Vz6dxquXgf52t46KYWhxpb6FVU1zj4dv/t2K/rrpOp8TPpaM4dpCLewZxQmuRGnX1s0ZJaKyprKY5O2F2R5QOlVa9D9rIaZ1ruP6A6uIC5LTvlMBHsrrENrA4D0eOn05mqfPQEwuqv2w7l+WSPl1l4FxkzI+KiZWxtobiWvnCy090xd4QiE45e5J+ZW9Ax9AKgDP5Lc7bxkizFWxh4jtL8Tn5nYiI3TQdtXT2e7Ooq+kW6bW7mUAeRsVTmJtWjAGCAcMOHvkB1GIYxmNvtsOTf89KTihTf9BDPCU1+Wv0wxL6xlL1lAc7fjPnfylk/2+Xm7C4htjTs6Ot8uUrS0WJM4Dq7+ocry8uph2aDY6lQKDWWyC+JkaX9rK3bdfCTbIYZcRrNAx5mqNPoyIak+SDRlrFJTHw2QJp7HHSvPBaejaDXM5KUSklSRn16zM91G432ICUM6dwoAOhDvNFy6Y5+tEmja4dUFAM/F5ubUgaj/cl+vPFWlY3ce1S9jgLZtL9ffREaDcgBwBv4KvaDAAAmGLjQ1I7S2IK/4g2wNvkiRXJXLi8PBZT9HUaCMLc7LSMSvn/7sp1EKG00NmvC/0F1YPWatOGnMXtbZcTuW8kSBt9s6EDG6p8fPDitDA4lsspgJJFFm3k+MjwYiO+Ue1B9sfXawY3qLdytM/bizhIGfn4XuJ7sNtwt/f4b1cEKPd86Q3f7jazJ1UxmNZm6P5O5P5WZm8uk5+dbvkitKcW1VHa1tHTy5FJpFXRvi+hrVG96m/6mOl1VfoGm7Hu9rVXKLoQqx5PHDnCTHH5Mt3amj03/Eb9xwDPw1MPKuXRv9/JLyHSHtzUOKqiubehdDlrObhLgLgS8tM3isDKTbrR5eCixr2A0xtJqazd7GlvoCVSHoN7fvfNZH893TOfmcH4/XuEDvmwoGmXFHm4iuLIQnvcMuBO+oVBvtIfPhgMLFsEju9kw4+bofZ2sFEgu+Oi43RX00F7K3MnKQ8LEgH6+q7GFcvghoFv64iVZFnVD7+rs8/mxwuy+3BNPsMHOXovNEbGUC6gz3fb005NqPTzcYUwTZj3XwcYWeg9tanq4Tavajtfm9idzhVIo6k9yGi/crOXeoyiufphNCyG0onbPDkQBgQUA/Q5tQieAaNiztw1vvrp8xEybjWZ635HFV9Cm+kVfgecLfcihdms4APBVtKnrfe9/ezLwhub9iTD87KmlQvt+wthu6zhYnO0g243tVmJq/gfVfIe1w9hu25dFm+qn3CTHTXLIveerG7Xx2f7+HK/e0mptRPRae/b2TpZvK3s/Ltu8Flu7oyOQsJp/s3yf2W02mh37DhWvkZHc+ybjOG5LhvvQp+p/mQLHFnyoc7senQ1rfAbgI2RF3drdR5ZEKrD5USbTnAlF1IE/1jiim8OT1kcg/UE6n0+LoyMjo6+duLG+frPqOnZjbe3GMUDgbxThRusfQb+ZaPVSDtOKHi+m8/nXWtGu6s319RuAoNI4iUj8W21n06QmCZGqvPHoo1cMRyLbONLUL9M4Ce+3YiRtM4gk88gjv7oSwWrk1kvNvc4DoD/jH0GPtqNEmZeaj0joD8XrDy/zhF2U+bK7eKhr+Qgt0T90Sa5F7dstudbdvvWu9esjl0evXbt2bfTyyPXr11Hb5V0Pwktoc+eOqChoU9NE4/d4BmR8VbtrkvquaQ4AF8O4XAyDZ7xuV2+vy+2F/wMAAP//AQAA//8O4HuoAAABAAAAAguF0vdYdV8PPPUAAwPoAAAAANhdoKEAAAAA3WYvNv46/tsIbwPIAAAAAwACAAAAAAAAAAEAAAPY/u8AAAiY/jr+OghvAAEAAAAAAAAAAAAAAAAAAAApeJwUxaFOw1AYxfH/ORUYEhypaEqTEpJC6DUNCIJE4T7HJeGJmJ/fy3RmZmJvML2Zpq7L1M8rfhjBDYU/GHxH9j9ZN2QdyT6QvWbwG9n3PLuk0szgjtBIrxO9Hqk18+qGYOKLhSg+CbeEa3q/EPoltKFSULrhW3tuvaO8qnc6JUKJJyX+lHjQmZaJgGV7AQAA//8BAAD//yAiHXAAAAAALAAsAFAAgACWAK4AugDKAPwBLAFOAZIBpAHcAhACPgJyApQDAAMiAy4DSgN8A54DygP+BB4EXgSEBKYEwgT8BSwFOAVSBWwFfgWQBcAFzAXiAAEAAAApAIwADABmAAcAAQAAAAAAAAAAAAAAAAAEAAN4nJyU3U4bVxSFPwfbbVQ1FxWKyA06l22VjN0IogSuTAmKVYRTj9Mfqao0eMY/Yjwz8gxQqj5Ar/sWfYtc9Tn6EFWvq7O8DTaqFIEQsM6cvfdZZ6+1D7DJv2xQqz8E/mr+YLjGdnPP8AMeNZ8a3uC48bfh+kpMg7jxm+EmXzb6hj/iff0Pwx+zU//Z8EO26keGP+F5fdPwpxuOfww/Yof3C1yDl/xuuMYWheEHbPKT4Q0eYzVrdR7TNtzgM7YNN9kGBkypSJmSMcYxYsqYc+YklIQkzJkyIiHG0aVDSqWvGZGQY/y/XyNCKuZEqjihwpESkhJRMrGKvyor561OHGk1t70OFRMiTpVxRkSGI2dMTkbCmepUVBTs0aJFyVB8CypKAkqmpATkzBnToscRxwyYMKXEcaRKnllIzoiKSyKd7yzCd2ZIQkZprM7JiMXTiV+i7C7HOHoUil2tfLxW4SmO75TtueWK/YpAv26F2fq5SzYRF+pnqq6k2rmUghPt+nM7fCtcsYe7V3/WmXy4R7H+V6p8yrn0j6VUJiYZzm3RIZSDQvcEx4HWXUJ15Hu6DHhDj3cMtO7Qp0+HEwZ0ea3cHn0cX9PjhENldIUXe0dyzAk/4viGrmJ87cT6s1As4RcKc3cpjnPdY0ahnnvmge6a6IZ3V9jPUL7mjlI5Q82Rj3TSL9OcRYzNFYUYztTLpTdK619sjpjpLl7bm30/DRc2e8spviLXDHu3Ljh55RaMPqRqcMszl/oJiIjJOVXEkJwZLSquxPstEeekOA7VvTeakorOdY4/50ouSZiJQZdMdeYU+huZb0LjPlzzvbO3JFa+Z3p2fav7nOLUqxuN3ql7y73QupysKNAyVfMVNw3FNTPvJ5qpVf6hcku9bjnP6JNI9VQ3uP0OPCegzQ677DPROUPtXNgb0dY70eYV++rBGYmiRnJ1YhV2CXjBLru84sVazQ6HHNBj/w4cF1k9Dnh9a2ddp2UVZ3X+FJu2+DqeXa9e3luvz+/gyy80UTcvY1/a+G5fWLUb/58QMfNc3NbqndwTgv8AAAD//wEAAP//B1tMMAB4nGJgZgCD/+cYjBiwAAAAAAD//wEAAP//LwECAwAAAA==");
}
@font-face {
font-family: d2-2249318606-font-semibold;
src: url("data:application/font-woff;base64,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");
}
.d2-2249318606 .text-bold {
font-family: "d2-2249318606-font-bold";
}
@font-face {
font-family: d2-2249318606-font-bold;
src: url("data:application/font-woff;base64,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");
}]]></style><style type="text/css"><![CDATA[.shape {
shape-rendering: geometricPrecision;
stroke-linejoin: round;
}
.connection {
stroke-linecap: round;
stroke-linejoin: round;
}
.blend {
mix-blend-mode: multiply;
opacity: 0.5;
}
.d2-2249318606 .fill-N1{fill:#0A0F25;}
.d2-2249318606 .fill-N2{fill:#676C7E;}
.d2-2249318606 .fill-N3{fill:#9499AB;}
.d2-2249318606 .fill-N4{fill:#CFD2DD;}
.d2-2249318606 .fill-N5{fill:#DEE1EB;}
.d2-2249318606 .fill-N6{fill:#EEF1F8;}
.d2-2249318606 .fill-N7{fill:#FFFFFF;}
.d2-2249318606 .fill-B1{fill:#0D32B2;}
.d2-2249318606 .fill-B2{fill:#0D32B2;}
.d2-2249318606 .fill-B3{fill:#E3E9FD;}
.d2-2249318606 .fill-B4{fill:#E3E9FD;}
.d2-2249318606 .fill-B5{fill:#EDF0FD;}
.d2-2249318606 .fill-B6{fill:#F7F8FE;}
.d2-2249318606 .fill-AA2{fill:#4A6FF3;}
.d2-2249318606 .fill-AA4{fill:#EDF0FD;}
.d2-2249318606 .fill-AA5{fill:#F7F8FE;}
.d2-2249318606 .fill-AB4{fill:#EDF0FD;}
.d2-2249318606 .fill-AB5{fill:#F7F8FE;}
.d2-2249318606 .stroke-N1{stroke:#0A0F25;}
.d2-2249318606 .stroke-N2{stroke:#676C7E;}
.d2-2249318606 .stroke-N3{stroke:#9499AB;}
.d2-2249318606 .stroke-N4{stroke:#CFD2DD;}
.d2-2249318606 .stroke-N5{stroke:#DEE1EB;}
.d2-2249318606 .stroke-N6{stroke:#EEF1F8;}
.d2-2249318606 .stroke-N7{stroke:#FFFFFF;}
.d2-2249318606 .stroke-B1{stroke:#0D32B2;}
.d2-2249318606 .stroke-B2{stroke:#0D32B2;}
.d2-2249318606 .stroke-B3{stroke:#E3E9FD;}
.d2-2249318606 .stroke-B4{stroke:#E3E9FD;}
.d2-2249318606 .stroke-B5{stroke:#EDF0FD;}
.d2-2249318606 .stroke-B6{stroke:#F7F8FE;}
.d2-2249318606 .stroke-AA2{stroke:#4A6FF3;}
.d2-2249318606 .stroke-AA4{stroke:#EDF0FD;}
.d2-2249318606 .stroke-AA5{stroke:#F7F8FE;}
.d2-2249318606 .stroke-AB4{stroke:#EDF0FD;}
.d2-2249318606 .stroke-AB5{stroke:#F7F8FE;}
.d2-2249318606 .background-color-N1{background-color:#0A0F25;}
.d2-2249318606 .background-color-N2{background-color:#676C7E;}
.d2-2249318606 .background-color-N3{background-color:#9499AB;}
.d2-2249318606 .background-color-N4{background-color:#CFD2DD;}
.d2-2249318606 .background-color-N5{background-color:#DEE1EB;}
.d2-2249318606 .background-color-N6{background-color:#EEF1F8;}
.d2-2249318606 .background-color-N7{background-color:#FFFFFF;}
.d2-2249318606 .background-color-B1{background-color:#0D32B2;}
.d2-2249318606 .background-color-B2{background-color:#0D32B2;}
.d2-2249318606 .background-color-B3{background-color:#E3E9FD;}
.d2-2249318606 .background-color-B4{background-color:#E3E9FD;}
.d2-2249318606 .background-color-B5{background-color:#EDF0FD;}
.d2-2249318606 .background-color-B6{background-color:#F7F8FE;}
.d2-2249318606 .background-color-AA2{background-color:#4A6FF3;}
.d2-2249318606 .background-color-AA4{background-color:#EDF0FD;}
.d2-2249318606 .background-color-AA5{background-color:#F7F8FE;}
.d2-2249318606 .background-color-AB4{background-color:#EDF0FD;}
.d2-2249318606 .background-color-AB5{background-color:#F7F8FE;}
.d2-2249318606 .color-N1{color:#0A0F25;}
.d2-2249318606 .color-N2{color:#676C7E;}
.d2-2249318606 .color-N3{color:#9499AB;}
.d2-2249318606 .color-N4{color:#CFD2DD;}
.d2-2249318606 .color-N5{color:#DEE1EB;}
.d2-2249318606 .color-N6{color:#EEF1F8;}
.d2-2249318606 .color-N7{color:#FFFFFF;}
.d2-2249318606 .color-B1{color:#0D32B2;}
.d2-2249318606 .color-B2{color:#0D32B2;}
.d2-2249318606 .color-B3{color:#E3E9FD;}
.d2-2249318606 .color-B4{color:#E3E9FD;}
.d2-2249318606 .color-B5{color:#EDF0FD;}
.d2-2249318606 .color-B6{color:#F7F8FE;}
.d2-2249318606 .color-AA2{color:#4A6FF3;}
.d2-2249318606 .color-AA4{color:#EDF0FD;}
.d2-2249318606 .color-AA5{color:#F7F8FE;}
.d2-2249318606 .color-AB4{color:#EDF0FD;}
.d2-2249318606 .color-AB5{color:#F7F8FE;}.appendix 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-AB5{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}.light-code{display: block}.dark-code{display: none}]]></style><style type="text/css">.d2-2249318606 .md em,
.d2-2249318606 .md dfn {
font-family: "d2-2249318606-font-italic";
}
.d2-2249318606 .md b,
.d2-2249318606 .md strong {
font-family: "d2-2249318606-font-bold";
}
.d2-2249318606 .md code,
.d2-2249318606 .md kbd,
.d2-2249318606 .md pre,
.d2-2249318606 .md samp {
font-family: "d2-2249318606-font-mono";
font-size: 1em;
}
.d2-2249318606 .md {
tab-size: 4;
}
/* variables are provided in d2renderers/d2svg/d2svg.go */
.d2-2249318606 .md {
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
margin: 0;
color: var(--color-fg-default);
background-color: transparent; /* we don't want to define the background color */
font-family: "d2-2249318606-font-regular";
font-size: 16px;
line-height: 1.5;
word-wrap: break-word;
}
.d2-2249318606 .md details,
.d2-2249318606 .md figcaption,
.d2-2249318606 .md figure {
display: block;
}
.d2-2249318606 .md summary {
display: list-item;
}
.d2-2249318606 .md [hidden] {
display: none !important;
}
.d2-2249318606 .md a {
background-color: transparent;
color: var(--color-accent-fg);
text-decoration: none;
}
.d2-2249318606 .md a:active,
.d2-2249318606 .md a:hover {
outline-width: 0;
}
.d2-2249318606 .md abbr[title] {
border-bottom: none;
text-decoration: underline dotted;
}
.d2-2249318606 .md dfn {
font-style: italic;
}
.d2-2249318606 .md h1 {
margin: 0.67em 0;
padding-bottom: 0.3em;
font-size: 2em;
border-bottom: 1px solid var(--color-border-muted);
}
.d2-2249318606 .md mark {
background-color: var(--color-attention-subtle);
color: var(--color-text-primary);
}
.d2-2249318606 .md small {
font-size: 90%;
}
.d2-2249318606 .md sub,
.d2-2249318606 .md sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
.d2-2249318606 .md sub {
bottom: -0.25em;
}
.d2-2249318606 .md sup {
top: -0.5em;
}
.d2-2249318606 .md img {
border-style: none;
max-width: 100%;
box-sizing: content-box;
background-color: var(--color-canvas-default);
}
.d2-2249318606 .md figure {
margin: 1em 40px;
}
.d2-2249318606 .md hr {
box-sizing: content-box;
overflow: hidden;
background: transparent;
border-bottom: 1px solid var(--color-border-muted);
height: 0.25em;
padding: 0;
margin: 24px 0;
background-color: var(--color-border-default);
border: 0;
}
.d2-2249318606 .md input {
font: inherit;
margin: 0;
overflow: visible;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
.d2-2249318606 .md [type="button"],
.d2-2249318606 .md [type="reset"],
.d2-2249318606 .md [type="submit"] {
-webkit-appearance: button;
}
.d2-2249318606 .md [type="button"]::-moz-focus-inner,
.d2-2249318606 .md [type="reset"]::-moz-focus-inner,
.d2-2249318606 .md [type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
.d2-2249318606 .md [type="button"]:-moz-focusring,
.d2-2249318606 .md [type="reset"]:-moz-focusring,
.d2-2249318606 .md [type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
.d2-2249318606 .md [type="checkbox"],
.d2-2249318606 .md [type="radio"] {
box-sizing: border-box;
padding: 0;
}
.d2-2249318606 .md [type="number"]::-webkit-inner-spin-button,
.d2-2249318606 .md [type="number"]::-webkit-outer-spin-button {
height: auto;
}
.d2-2249318606 .md [type="search"] {
-webkit-appearance: textfield;
outline-offset: -2px;
}
.d2-2249318606 .md [type="search"]::-webkit-search-cancel-button,
.d2-2249318606 .md [type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
.d2-2249318606 .md ::-webkit-input-placeholder {
color: inherit;
opacity: 0.54;
}
.d2-2249318606 .md ::-webkit-file-upload-button {
-webkit-appearance: button;
font: inherit;
}
.d2-2249318606 .md a:hover {
text-decoration: underline;
}
.d2-2249318606 .md hr::before {
display: table;
content: "";
}
.d2-2249318606 .md hr::after {
display: table;
clear: both;
content: "";
}
.d2-2249318606 .md table {
border-spacing: 0;
border-collapse: collapse;
display: block;
width: max-content;
max-width: 100%;
overflow: auto;
}
.d2-2249318606 .md td,
.d2-2249318606 .md th {
padding: 0;
}
.d2-2249318606 .md details summary {
cursor: pointer;
}
.d2-2249318606 .md details:not([open]) > *:not(summary) {
display: none !important;
}
.d2-2249318606 .md kbd {
display: inline-block;
padding: 3px 5px;
color: var(--color-fg-default);
vertical-align: middle;
background-color: var(--color-canvas-subtle);
border: solid 1px var(--color-neutral-muted);
border-bottom-color: var(--color-neutral-muted);
border-radius: 6px;
box-shadow: inset 0 -1px 0 var(--color-neutral-muted);
}
.d2-2249318606 .md h1,
.d2-2249318606 .md h2,
.d2-2249318606 .md h3,
.d2-2249318606 .md h4,
.d2-2249318606 .md h5,
.d2-2249318606 .md h6 {
margin-top: 24px;
margin-bottom: 16px;
font-weight: 400;
line-height: 1.25;
font-family: "d2-2249318606-font-semibold";
}
.d2-2249318606 .md h2 {
padding-bottom: 0.3em;
font-size: 1.5em;
border-bottom: 1px solid var(--color-border-muted);
}
.d2-2249318606 .md h3 {
font-size: 1.25em;
}
.d2-2249318606 .md h4 {
font-size: 1em;
}
.d2-2249318606 .md h5 {
font-size: 0.875em;
}
.d2-2249318606 .md h6 {
font-size: 0.85em;
color: var(--color-fg-muted);
}
.d2-2249318606 .md p {
margin-top: 0;
margin-bottom: 10px;
}
.d2-2249318606 .md blockquote {
margin: 0;
padding: 0 1em;
color: var(--color-fg-muted);
border-left: 0.25em solid var(--color-border-default);
}
.d2-2249318606 .md ul,
.d2-2249318606 .md ol {
margin-top: 0;
margin-bottom: 0;
padding-left: 2em;
}
.d2-2249318606 .md ol ol,
.d2-2249318606 .md ul ol {
list-style-type: lower-roman;
}
.d2-2249318606 .md ul ul ol,
.d2-2249318606 .md ul ol ol,
.d2-2249318606 .md ol ul ol,
.d2-2249318606 .md ol ol ol {
list-style-type: lower-alpha;
}
.d2-2249318606 .md dd {
margin-left: 0;
}
.d2-2249318606 .md pre {
margin-top: 0;
margin-bottom: 0;
word-wrap: normal;
}
.d2-2249318606 .md ::placeholder {
color: var(--color-fg-subtle);
opacity: 1;
}
.d2-2249318606 .md input::-webkit-outer-spin-button,
.d2-2249318606 .md input::-webkit-inner-spin-button {
margin: 0;
-webkit-appearance: none;
appearance: none;
}
.d2-2249318606 .md::before {
display: table;
content: "";
}
.d2-2249318606 .md::after {
display: table;
clear: both;
content: "";
}
.d2-2249318606 .md > *:first-child {
margin-top: 0 !important;
}
.d2-2249318606 .md > *:last-child {
margin-bottom: 0 !important;
}
.d2-2249318606 .md a:not([href]) {
color: inherit;
text-decoration: none;
}
.d2-2249318606 .md .absent {
color: var(--color-danger-fg);
}
.d2-2249318606 .md .anchor {
float: left;
padding-right: 4px;
margin-left: -20px;
line-height: 1;
}
.d2-2249318606 .md .anchor:focus {
outline: none;
}
.d2-2249318606 .md p,
.d2-2249318606 .md blockquote,
.d2-2249318606 .md ul,
.d2-2249318606 .md ol,
.d2-2249318606 .md dl,
.d2-2249318606 .md table,
.d2-2249318606 .md pre,
.d2-2249318606 .md details {
margin-top: 0;
margin-bottom: 16px;
}
.d2-2249318606 .md blockquote > :first-child {
margin-top: 0;
}
.d2-2249318606 .md blockquote > :last-child {
margin-bottom: 0;
}
.d2-2249318606 .md sup > a::before {
content: "[";
}
.d2-2249318606 .md sup > a::after {
content: "]";
}
.d2-2249318606 .md h1:hover .anchor,
.d2-2249318606 .md h2:hover .anchor,
.d2-2249318606 .md h3:hover .anchor,
.d2-2249318606 .md h4:hover .anchor,
.d2-2249318606 .md h5:hover .anchor,
.d2-2249318606 .md h6:hover .anchor {
text-decoration: none;
}
.d2-2249318606 .md h1 tt,
.d2-2249318606 .md h1 code,
.d2-2249318606 .md h2 tt,
.d2-2249318606 .md h2 code,
.d2-2249318606 .md h3 tt,
.d2-2249318606 .md h3 code,
.d2-2249318606 .md h4 tt,
.d2-2249318606 .md h4 code,
.d2-2249318606 .md h5 tt,
.d2-2249318606 .md h5 code,
.d2-2249318606 .md h6 tt,
.d2-2249318606 .md h6 code {
padding: 0 0.2em;
font-size: inherit;
}
.d2-2249318606 .md ul.no-list,
.d2-2249318606 .md ol.no-list {
padding: 0;
list-style-type: none;
}
.d2-2249318606 .md ol[type="1"] {
list-style-type: decimal;
}
.d2-2249318606 .md ol[type="a"] {
list-style-type: lower-alpha;
}
.d2-2249318606 .md ol[type="i"] {
list-style-type: lower-roman;
}
.d2-2249318606 .md div > ol:not([type]) {
list-style-type: decimal;
}
.d2-2249318606 .md ul ul,
.d2-2249318606 .md ul ol,
.d2-2249318606 .md ol ol,
.d2-2249318606 .md ol ul {
margin-top: 0;
margin-bottom: 0;
}
.d2-2249318606 .md li > p {
margin-top: 16px;
}
.d2-2249318606 .md li + li {
margin-top: 0.25em;
}
.d2-2249318606 .md dl {
padding: 0;
}
.d2-2249318606 .md dl dt {
padding: 0;
margin-top: 16px;
font-size: 1em;
font-style: italic;
font-family: "d2-2249318606-font-semibold";
}
.d2-2249318606 .md dl dd {
padding: 0 16px;
margin-bottom: 16px;
}
.d2-2249318606 .md table th {
font-family: "d2-2249318606-font-semibold";
}
.d2-2249318606 .md table th,
.d2-2249318606 .md table td {
padding: 6px 13px;
border: 1px solid var(--color-border-default);
}
.d2-2249318606 .md table tr {
background-color: var(--color-canvas-default);
border-top: 1px solid var(--color-border-muted);
}
.d2-2249318606 .md table tr:nth-child(2n) {
background-color: var(--color-canvas-subtle);
}
.d2-2249318606 .md table img {
background-color: transparent;
}
.d2-2249318606 .md img[align="right"] {
padding-left: 20px;
}
.d2-2249318606 .md img[align="left"] {
padding-right: 20px;
}
.d2-2249318606 .md span.frame {
display: block;
overflow: hidden;
}
.d2-2249318606 .md span.frame > span {
display: block;
float: left;
width: auto;
padding: 7px;
margin: 13px 0 0;
overflow: hidden;
border: 1px solid var(--color-border-default);
}
.d2-2249318606 .md span.frame span img {
display: block;
float: left;
}
.d2-2249318606 .md span.frame span span {
display: block;
padding: 5px 0 0;
clear: both;
color: var(--color-fg-default);
}
.d2-2249318606 .md span.align-center {
display: block;
overflow: hidden;
clear: both;
}
.d2-2249318606 .md span.align-center > span {
display: block;
margin: 13px auto 0;
overflow: hidden;
text-align: center;
}
.d2-2249318606 .md span.align-center span img {
margin: 0 auto;
text-align: center;
}
.d2-2249318606 .md span.align-right {
display: block;
overflow: hidden;
clear: both;
}
.d2-2249318606 .md span.align-right > span {
display: block;
margin: 13px 0 0;
overflow: hidden;
text-align: right;
}
.d2-2249318606 .md span.align-right span img {
margin: 0;
text-align: right;
}
.d2-2249318606 .md span.float-left {
display: block;
float: left;
margin-right: 13px;
overflow: hidden;
}
.d2-2249318606 .md span.float-left span {
margin: 13px 0 0;
}
.d2-2249318606 .md span.float-right {
display: block;
float: right;
margin-left: 13px;
overflow: hidden;
}
.d2-2249318606 .md span.float-right > span {
display: block;
margin: 13px auto 0;
overflow: hidden;
text-align: right;
}
.d2-2249318606 .md code,
.d2-2249318606 .md tt {
padding: 0.2em 0.4em;
margin: 0;
font-size: 85%;
background-color: var(--color-neutral-muted);
border-radius: 6px;
}
.d2-2249318606 .md code br,
.d2-2249318606 .md tt br {
display: none;
}
.d2-2249318606 .md del code {
text-decoration: inherit;
}
.d2-2249318606 .md pre code {
font-size: 100%;
}
.d2-2249318606 .md pre > code {
padding: 0;
margin: 0;
word-break: normal;
white-space: pre;
background: transparent;
border: 0;
}
.d2-2249318606 .md .highlight {
margin-bottom: 16px;
}
.d2-2249318606 .md .highlight pre {
margin-bottom: 0;
word-break: normal;
}
.d2-2249318606 .md .highlight pre,
.d2-2249318606 .md pre {
padding: 16px;
overflow: auto;
font-size: 85%;
line-height: 1.45;
background-color: var(--color-canvas-subtle);
border-radius: 6px;
}
.d2-2249318606 .md pre code,
.d2-2249318606 .md pre tt {
display: inline;
max-width: auto;
padding: 0;
margin: 0;
overflow: visible;
line-height: inherit;
word-wrap: normal;
background-color: transparent;
border: 0;
}
.d2-2249318606 .md .csv-data td,
.d2-2249318606 .md .csv-data th {
padding: 5px;
overflow: hidden;
font-size: 12px;
line-height: 1;
text-align: left;
white-space: nowrap;
}
.d2-2249318606 .md .csv-data .blob-num {
padding: 10px 8px 9px;
text-align: right;
background: var(--color-canvas-default);
border: 0;
}
.d2-2249318606 .md .csv-data tr {
border-top: 0;
}
.d2-2249318606 .md .csv-data th {
font-family: "d2-2249318606-font-semibold";
background: var(--color-canvas-subtle);
border-top: 0;
}
.d2-2249318606 .md .footnotes {
font-size: 12px;
color: var(--color-fg-muted);
border-top: 1px solid var(--color-border-default);
}
.d2-2249318606 .md .footnotes ol {
padding-left: 16px;
}
.d2-2249318606 .md .footnotes li {
position: relative;
}
.d2-2249318606 .md .footnotes li:target::before {
position: absolute;
top: -8px;
right: -8px;
bottom: -8px;
left: -24px;
pointer-events: none;
content: "";
border: 2px solid var(--color-accent-emphasis);
border-radius: 6px;
}
.d2-2249318606 .md .footnotes li:target {
color: var(--color-fg-default);
}
.d2-2249318606 .md .task-list-item {
list-style-type: none;
}
.d2-2249318606 .md .task-list-item label {
font-weight: 400;
}
.d2-2249318606 .md .task-list-item.enabled label {
cursor: pointer;
}
.d2-2249318606 .md .task-list-item + .task-list-item {
margin-top: 3px;
}
.d2-2249318606 .md .task-list-item .handle {
display: none;
}
.d2-2249318606 .md .task-list-item-checkbox {
margin: 0 0.2em 0.25em -1.6em;
vertical-align: middle;
}
.d2-2249318606 .md .contains-task-list:dir(rtl) .task-list-item-checkbox {
margin: 0 -1.6em 0.25em 0.2em;
}
</style><g id="md"><g class="shape" ></g><g><foreignObject requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" x="12.000000" y="148.000000" width="379" height="100"><div xmlns="http://www.w3.org/1999/xhtml" class="md"><ul>
<li><a href="#overview">Overview</a>
<ul>
<li><a href="#philosophy">Philosophy</a></li>
<li><a href="#html">Inline HTML</a>
<ul>
<li><a href="#autoescape">Automatic Escaping for Special Characters</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div></foreignObject></g></g><g id="a"><g class="shape" ><rect x="175.000000" y="12.000000" width="53.000000" height="66.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="201.500000" y="50.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">a</text></g><g id="b"><g class="shape" ><rect x="175.000000" y="318.000000" width="53.000000" height="66.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="201.500000" y="356.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">b</text></g><g id="(a -&gt; md)[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 201.500000 80.000000 L 201.500000 144.000000" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#d2-2249318606)" /></g><g id="(md -&gt; b)[0]"><path d="M 201.500000 250.000000 L 201.500000 314.000000" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#d2-2249318606)" /></g><mask id="d2-2249318606" maskUnits="userSpaceOnUse" x="11" y="11" width="381" height="374">
<rect x="11" y="11" width="381" height="374" fill="white"></rect>
<rect x="12.000000" y="148.000000" width="379" height="100" fill="rgba(0,0,0,0.75)"></rect>
<rect x="197.500000" y="34.500000" width="8" height="21" fill="rgba(0,0,0,0.75)"></rect>
<rect x="197.500000" y="340.500000" width="8" height="21" fill="rgba(0,0,0,0.75)"></rect>
</mask></svg></svg>