d2/e2etests/testdata/stable/li1/elk/sketch.exp.svg
2023-03-27 19:19:12 -07:00

856 lines
No EOL
29 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.2.6-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 381 374"><svg id="d2-svg" class="d2-2389900904" 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-2389900904 .text {
font-family: "d2-2389900904-font-regular";
}
@font-face {
font-family: d2-2389900904-font-regular;
src: url("data:application/font-woff;base64,d09GRgABAAAAAA8cAAoAAAAAFyAAAguFAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAAA9AAAAGAAAABgXd/Vo2NtYXAAAAFUAAAAuwAAAQIFCgWqZ2x5ZgAAAhAAAAhaAAALbGlOo01oZWFkAAAKbAAAADYAAAA2G4Ue32hoZWEAAAqkAAAAJAAAACQKhAXqaG10eAAACsgAAACZAAAAoEbwCGRsb2NhAAALZAAAAFIAAABSPRY6KG1heHAAAAu4AAAAIAAAACAAQAD2bmFtZQAAC9gAAAMjAAAIFAbDVU1wb3N0AAAO/AAAAB0AAAAg/9EAMgADAgkBkAAFAAACigJYAAAASwKKAlgAAAFeADIBIwAAAgsFAwMEAwICBGAAAvcAAAADAAAAAAAAAABBREJPAEAAIP//Au7/BgAAA9gBESAAAZ8AAAAAAeYClAAAACAAA3icjM45LgYBGIDhZ/4ZYxv7vg+DUDiEiISEkNCJQkQhUYhGXAjhAEIEHa0buINK9Ykp1P9bP8WLRCpBIfOJRaVMrlRZtmLVmnWbtu3ad+DQsVPnLl1FULulf7dhy4692h05cebiz8WXRvzEd7zFa7zEczzFYzzER7zHfdzFbdzEdX3RXAtmzSklGlKZFrlWbdp16FSZV+jSrUevPv0GDBoybMSoMeMmTJoybYZfAAAA//8BAAD//zOiMJgAeJxsVl9sI9X1Pvfa8SRrZ+2JPR47sTOemcSO7Th2PB7PJnZsktiON5s/zjghG5M4PxYvye4CvyWCrRZtQS0poD5QPyxiRZGKWl6QqIAibSrxRlualpQKtYK2dFeoD+GhtLRuVAmxGVczdkKy4mE083Dm3O985/vOuYBBB4DduAptQAJYCcHn9fp4g0FnFay8jyfeZ37FdHgserPnL7fLt5dSX6TR/1cq0sNDQw8rJVzdv7y9DQCAIFbfw134ZXADtHBerxiLx4WonSa8Xp4zGCib3S5E4xJtMCBZ/s6Zqc1ictkV6hwLpFaE6H2p8CQz4Dtnmrtx6eINedATd3GjV2T56lgfFwtFtfwlAHQbV8EIIJAsxVICxVMsVUJPKH/+8ks0iKu5Dyb+OXEQi6MHsQLJkgLJkyxZKqLB+Xnl97iq/ANZ9y8jUXn/IB5+iqsqF2p8qagW1jxzB1ehpZmHKhURg6v7WxNweM63cVWtWSAFq91OC/G4ZFVPi8UlntDxOh9vt1NkqfKkiTbpTZTp2vmZVp0+dk26FtPrCFxVfsxlOS7LofL+ZXSh/1LwBeV1NP9C8FK/8iIAYI3X8/hlMN/FrJ2yGQy+aDwuxlSGVYLRlPzUxMRTcvHJfP7JYmIxcvHs2YuRs6b5ly5ceHFu7sULF16aPz1+VX7i+eefkK+Og5ZfrcGocWXTqmhk5nmSFKJabr70zuQjqWceeujcvcXFe8u42rOQX6sod1B+NDchaTwE6nvoC/wyhDSEPknrtRjzen2+AXxcCSpOmu7GKnpkyV4JRvlVYTTvHmTKzIhfLCcSFT7UfXpAGmejnSvekZ54xST2D/eGEhGuz3XS3x4Yi0RnQ6GeuJuN9TP+TmOfJTQ6GFuIAgIXALqDq0ColfAiS/Hk395Dn76HJ3O5/ZtwwCd6C9WgE3oAaE6lU4pp0AifBpQiedUAvmhcEjXhvjsy94MfksG+wKTbwz0wvFTIEDpuzs6n+Kv3R02nRwsLJHOK99iG7P6H71M+GnYFxjjmWXMy7O8FDHJ9D32Ft8EKngY7PMGTAkU0zmr0sNFCgrLbkZ877dERYzJmZ/tWzyVWc8nZRJa5h/ekTaw7irffPev2PfNo8Uoqu1YqPMB56i66ocWB+h56A9VUDr7Zfwf267hnPTl6KRXJOgNU2N2f9RXHuWF7D1swJTcK8kaSo+NWR3jhVHHNbZPcrMqZmvu3qAYOYI5lp2wGgj00to7VykD06MVUuiKtnEdY+XnLYo5PdLmZ2feRPj0kzJlGNmYLG6lr6+3OtulliozbupF3cnpWq6EbAKXxH4Fq9E8SY80aeI5S/U7+39hY9jQdsHR0uTJra+gnqZbpycU2Im0qT48rKwCgg1Ddgz5HNRiEEZg+7LDoPfLSkgoU3/AQz/ka/DT7oYt+bSlr0wKctxHz36XLXrbDyVkdvuj8oK2n/bUKSUcKUR/X3tE7WF5YSD4yFRhJBoPJkXhuXgjPn2QtnY4zn2bSzJBdb+xzMQPtelsmKM4EiJa0RWRiU37S2GWju6WR0FQYvZUWxWRSFNPKcyNerlOvtwYo34DGjQyAPsbbTZce6EedNJp2SFnW8dPR6Qm5P9Kb6MXb71bY8P0ryg7yZ1LeXuUVqNchCwBv45vYC14AMIDvWkM7cn0P/oS3wdzgixTIQ7m8NuCXT7bpCcLYajcNifjB/etWEqGUXt/AhP+NasBqmNThpzJ7DBlx+JYzhM4zFTyVNntn+s+clvsH4hm5PxzPoN0cHx7s98cO4J5RXmm+DupGtWbdzTOO1p0hdPzMYeFasmN1N/X7L1QDM3R94ww97DcyJ9bS6bVE8sF0+sFkeno6nZqZafoiuSEXNpKZteL8+vp8cQ00bwvoK1RreJv+Gp2mKq+PpqxHva0iZWeD5XOJ1VPcOIe/pVk73cOmfoffPuXqe/ZR+Uqqu3PhVWS4y9sqB2VUUzf0IQdNZzcIcOb9btpispmZcSfaPTsQP5HX66MppbmbXfU99DSqQUDr79H5rI3nu6ZzYzh/GCvzfk8mGImwQhc3FliaDc24+pxxz0CwO9LFZ0L+WZPPJTnZEOPk6BPtrOhPzHromNURcNFuytjOSgO+sT7tfEd9D2XxI0A39cWLkiRohj7U2d9nRvJTJ7JPP80G2rtNFlvYVMqj9lTLc8+NK7XQYJs+RRi1XGfqe+gDtKvq4ZhW1R2vzu1Pp/PFYMSb4FReuCnT/SsopnycSfmCaEnpnOqLAAITAPo12oV2AEF3ZG/r3nljYdlIG/VG+sTy3OtoV/m8J8/z+R5kUzrVOgDwTbSr6f3of0cy8LrG/YnQ/ejZ+XzrSULfamk7U5hqI1v1rWZiYua7lVybuU3fajmRQbvKZ9w4x41zyHnkqxO18Jne3iyv3FGx1sMa1q6jvZOkY7BP4pLFbbK02tr8cbPxFwsPGJ1GvdF2YrGwRYazHxr0o7glEepBnyn/YfIcm/eg9v1aZCqk8umHT5AZdap3H0kUKP/uJ+l0YyYUUBv+q8oR3RietDYC6Y9SuVxKGB4aGn7z/K3NzdsVx+qtjY1bq4DAWy/AreY/Pu1mouKlbIYlLV5I5XJvNqMdldubm7cAQbm+jkj8S3Vn06QqCYEqv/344zd0y+F9HG7ol6mvw4fNGFHdDALJPPbYz26EsRK+82pjr/MA6A/4+9Cl7ihB4sXGIxDaQ/Haw0s8YRUkvuQsLHYsLNMi/T2H6JhTv52iY9Pp2ezY3Bm6Pry1tbU1fH1oZ2cHtVw/9CC8inYP7oiyjHZVTdR/gydBwjfVuyap7ZrGAHAwjMPBMHjS7XR0dzucbvgfAAAA//8BAAD///wEY/gAAAABAAAAAguFq1+t9V8PPPUAAwPoAAAAANhdoKEAAAAA3WYvNv46/tsIbwPIAAAAAwACAAAAAAAAAAEAAAPY/u8AAAiY/jr+OghvAAEAAAAAAAAAAAAAAAAAAAAoeJwUxSFOw2AYxvH/81RgSHCkoilNSkgKoZ9pQBAkCvfKb8lOtAPM7zKdmZnYDaY309R1mfoxghsK/zD4iewNWQ9knck+kb1l8BfZz7y7pNLM4I7QSK8LvV6pNfPphmDij4Uofgm3hGt6fxBaEdpRKSjd8K8jjz5Q3tU3nRKhxJsSayVedKVlImDZ3wAAAP//AQAA//+NBxyIAAAAAAAAAAAkAFQAagCCAI4AngDQAQABIgFmAXgBsAHkAhICRgJoAtQC9gMCAx4DUANyA54D0gPyBDIEWAR6BJYE0AUABQwFJgVABVIFZAWUBaAFtgAAAAEAAAAoAIwADABmAAcAAQAAAAAAAAAAAAAAAAAEAAN4nJyU3U4bVxSFPwfbbVQ1FxWKyA06l22VjN0IogSuTAmKVYRTj9Mfqao0eMY/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==");
}
.d2-2389900904 .text-bold {
font-family: "d2-2389900904-font-bold";
}
@font-face {
font-family: d2-2389900904-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-2389900904 .fill-N1{fill:#0A0F25;}
.d2-2389900904 .fill-N2{fill:#676C7E;}
.d2-2389900904 .fill-N3{fill:#9499AB;}
.d2-2389900904 .fill-N4{fill:#CFD2DD;}
.d2-2389900904 .fill-N5{fill:#DEE1EB;}
.d2-2389900904 .fill-N6{fill:#EEF1F8;}
.d2-2389900904 .fill-N7{fill:#FFFFFF;}
.d2-2389900904 .fill-B1{fill:#0D32B2;}
.d2-2389900904 .fill-B2{fill:#0D32B2;}
.d2-2389900904 .fill-B3{fill:#E3E9FD;}
.d2-2389900904 .fill-B4{fill:#E3E9FD;}
.d2-2389900904 .fill-B5{fill:#EDF0FD;}
.d2-2389900904 .fill-B6{fill:#F7F8FE;}
.d2-2389900904 .fill-AA2{fill:#4A6FF3;}
.d2-2389900904 .fill-AA4{fill:#EDF0FD;}
.d2-2389900904 .fill-AA5{fill:#F7F8FE;}
.d2-2389900904 .fill-AB4{fill:#EDF0FD;}
.d2-2389900904 .fill-AB5{fill:#F7F8FE;}
.d2-2389900904 .stroke-N1{stroke:#0A0F25;}
.d2-2389900904 .stroke-N2{stroke:#676C7E;}
.d2-2389900904 .stroke-N3{stroke:#9499AB;}
.d2-2389900904 .stroke-N4{stroke:#CFD2DD;}
.d2-2389900904 .stroke-N5{stroke:#DEE1EB;}
.d2-2389900904 .stroke-N6{stroke:#EEF1F8;}
.d2-2389900904 .stroke-N7{stroke:#FFFFFF;}
.d2-2389900904 .stroke-B1{stroke:#0D32B2;}
.d2-2389900904 .stroke-B2{stroke:#0D32B2;}
.d2-2389900904 .stroke-B3{stroke:#E3E9FD;}
.d2-2389900904 .stroke-B4{stroke:#E3E9FD;}
.d2-2389900904 .stroke-B5{stroke:#EDF0FD;}
.d2-2389900904 .stroke-B6{stroke:#F7F8FE;}
.d2-2389900904 .stroke-AA2{stroke:#4A6FF3;}
.d2-2389900904 .stroke-AA4{stroke:#EDF0FD;}
.d2-2389900904 .stroke-AA5{stroke:#F7F8FE;}
.d2-2389900904 .stroke-AB4{stroke:#EDF0FD;}
.d2-2389900904 .stroke-AB5{stroke:#F7F8FE;}
.d2-2389900904 .background-color-N1{background-color:#0A0F25;}
.d2-2389900904 .background-color-N2{background-color:#676C7E;}
.d2-2389900904 .background-color-N3{background-color:#9499AB;}
.d2-2389900904 .background-color-N4{background-color:#CFD2DD;}
.d2-2389900904 .background-color-N5{background-color:#DEE1EB;}
.d2-2389900904 .background-color-N6{background-color:#EEF1F8;}
.d2-2389900904 .background-color-N7{background-color:#FFFFFF;}
.d2-2389900904 .background-color-B1{background-color:#0D32B2;}
.d2-2389900904 .background-color-B2{background-color:#0D32B2;}
.d2-2389900904 .background-color-B3{background-color:#E3E9FD;}
.d2-2389900904 .background-color-B4{background-color:#E3E9FD;}
.d2-2389900904 .background-color-B5{background-color:#EDF0FD;}
.d2-2389900904 .background-color-B6{background-color:#F7F8FE;}
.d2-2389900904 .background-color-AA2{background-color:#4A6FF3;}
.d2-2389900904 .background-color-AA4{background-color:#EDF0FD;}
.d2-2389900904 .background-color-AA5{background-color:#F7F8FE;}
.d2-2389900904 .background-color-AB4{background-color:#EDF0FD;}
.d2-2389900904 .background-color-AB5{background-color:#F7F8FE;}
.d2-2389900904 .color-N1{color:#0A0F25;}
.d2-2389900904 .color-N2{color:#676C7E;}
.d2-2389900904 .color-N3{color:#9499AB;}
.d2-2389900904 .color-N4{color:#CFD2DD;}
.d2-2389900904 .color-N5{color:#DEE1EB;}
.d2-2389900904 .color-N6{color:#EEF1F8;}
.d2-2389900904 .color-N7{color:#FFFFFF;}
.d2-2389900904 .color-B1{color:#0D32B2;}
.d2-2389900904 .color-B2{color:#0D32B2;}
.d2-2389900904 .color-B3{color:#E3E9FD;}
.d2-2389900904 .color-B4{color:#E3E9FD;}
.d2-2389900904 .color-B5{color:#EDF0FD;}
.d2-2389900904 .color-B6{color:#F7F8FE;}
.d2-2389900904 .color-AA2{color:#4A6FF3;}
.d2-2389900904 .color-AA4{color:#EDF0FD;}
.d2-2389900904 .color-AA5{color:#F7F8FE;}
.d2-2389900904 .color-AB4{color:#EDF0FD;}
.d2-2389900904 .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">.md em,
.md dfn {
font-family: "d2-2389900904-font-italic";
}
.md b,
.md strong {
font-family: "d2-2389900904-font-bold";
}
.md code,
.md kbd,
.md pre,
.md samp {
font-family: "d2-2389900904-font-mono";
font-size: 1em;
}
.md {
tab-size: 4;
}
/* variables are provided in d2renderers/d2svg/d2svg.go */
.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-2389900904-font-regular";
font-size: 16px;
line-height: 1.5;
word-wrap: break-word;
}
.md details,
.md figcaption,
.md figure {
display: block;
}
.md summary {
display: list-item;
}
.md [hidden] {
display: none !important;
}
.md a {
background-color: transparent;
color: var(--color-accent-fg);
text-decoration: none;
}
.md a:active,
.md a:hover {
outline-width: 0;
}
.md abbr[title] {
border-bottom: none;
text-decoration: underline dotted;
}
.md dfn {
font-style: italic;
}
.md h1 {
margin: 0.67em 0;
font-weight: 600;
padding-bottom: 0.3em;
font-size: 2em;
border-bottom: 1px solid var(--color-border-muted);
}
.md mark {
background-color: var(--color-attention-subtle);
color: var(--color-text-primary);
}
.md small {
font-size: 90%;
}
.md sub,
.md sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
.md sub {
bottom: -0.25em;
}
.md sup {
top: -0.5em;
}
.md img {
border-style: none;
max-width: 100%;
box-sizing: content-box;
background-color: var(--color-canvas-default);
}
.md figure {
margin: 1em 40px;
}
.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;
}
.md input {
font: inherit;
margin: 0;
overflow: visible;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
.md [type="button"],
.md [type="reset"],
.md [type="submit"] {
-webkit-appearance: button;
}
.md [type="button"]::-moz-focus-inner,
.md [type="reset"]::-moz-focus-inner,
.md [type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
.md [type="button"]:-moz-focusring,
.md [type="reset"]:-moz-focusring,
.md [type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
.md [type="checkbox"],
.md [type="radio"] {
box-sizing: border-box;
padding: 0;
}
.md [type="number"]::-webkit-inner-spin-button,
.md [type="number"]::-webkit-outer-spin-button {
height: auto;
}
.md [type="search"] {
-webkit-appearance: textfield;
outline-offset: -2px;
}
.md [type="search"]::-webkit-search-cancel-button,
.md [type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
.md ::-webkit-input-placeholder {
color: inherit;
opacity: 0.54;
}
.md ::-webkit-file-upload-button {
-webkit-appearance: button;
font: inherit;
}
.md a:hover {
text-decoration: underline;
}
.md hr::before {
display: table;
content: "";
}
.md hr::after {
display: table;
clear: both;
content: "";
}
.md table {
border-spacing: 0;
border-collapse: collapse;
display: block;
width: max-content;
max-width: 100%;
overflow: auto;
}
.md td,
.md th {
padding: 0;
}
.md details summary {
cursor: pointer;
}
.md details:not([open]) > *:not(summary) {
display: none !important;
}
.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);
}
.md h1,
.md h2,
.md h3,
.md h4,
.md h5,
.md h6 {
margin-top: 24px;
margin-bottom: 16px;
font-weight: 600;
line-height: 1.25;
font-family: "d2-2389900904-font-regular";
}
.md h2 {
font-weight: 600;
padding-bottom: 0.3em;
font-size: 1.5em;
border-bottom: 1px solid var(--color-border-muted);
}
.md h3 {
font-weight: 600;
font-size: 1.25em;
}
.md h4 {
font-weight: 600;
font-size: 1em;
}
.md h5 {
font-weight: 600;
font-size: 0.875em;
}
.md h6 {
font-weight: 600;
font-size: 0.85em;
color: var(--color-fg-muted);
}
.md p {
margin-top: 0;
margin-bottom: 10px;
}
.md blockquote {
margin: 0;
padding: 0 1em;
color: var(--color-fg-muted);
border-left: 0.25em solid var(--color-border-default);
}
.md ul,
.md ol {
margin-top: 0;
margin-bottom: 0;
padding-left: 2em;
}
.md ol ol,
.md ul ol {
list-style-type: lower-roman;
}
.md ul ul ol,
.md ul ol ol,
.md ol ul ol,
.md ol ol ol {
list-style-type: lower-alpha;
}
.md dd {
margin-left: 0;
}
.md pre {
margin-top: 0;
margin-bottom: 0;
word-wrap: normal;
}
.md ::placeholder {
color: var(--color-fg-subtle);
opacity: 1;
}
.md input::-webkit-outer-spin-button,
.md input::-webkit-inner-spin-button {
margin: 0;
-webkit-appearance: none;
appearance: none;
}
.md::before {
display: table;
content: "";
}
.md::after {
display: table;
clear: both;
content: "";
}
.md > *:first-child {
margin-top: 0 !important;
}
.md > *:last-child {
margin-bottom: 0 !important;
}
.md a:not([href]) {
color: inherit;
text-decoration: none;
}
.md .absent {
color: var(--color-danger-fg);
}
.md .anchor {
float: left;
padding-right: 4px;
margin-left: -20px;
line-height: 1;
}
.md .anchor:focus {
outline: none;
}
.md p,
.md blockquote,
.md ul,
.md ol,
.md dl,
.md table,
.md pre,
.md details {
margin-top: 0;
margin-bottom: 16px;
}
.md blockquote > :first-child {
margin-top: 0;
}
.md blockquote > :last-child {
margin-bottom: 0;
}
.md sup > a::before {
content: "[";
}
.md sup > a::after {
content: "]";
}
.md h1:hover .anchor,
.md h2:hover .anchor,
.md h3:hover .anchor,
.md h4:hover .anchor,
.md h5:hover .anchor,
.md h6:hover .anchor {
text-decoration: none;
}
.md h1 tt,
.md h1 code,
.md h2 tt,
.md h2 code,
.md h3 tt,
.md h3 code,
.md h4 tt,
.md h4 code,
.md h5 tt,
.md h5 code,
.md h6 tt,
.md h6 code {
padding: 0 0.2em;
font-size: inherit;
}
.md ul.no-list,
.md ol.no-list {
padding: 0;
list-style-type: none;
}
.md ol[type="1"] {
list-style-type: decimal;
}
.md ol[type="a"] {
list-style-type: lower-alpha;
}
.md ol[type="i"] {
list-style-type: lower-roman;
}
.md div > ol:not([type]) {
list-style-type: decimal;
}
.md ul ul,
.md ul ol,
.md ol ol,
.md ol ul {
margin-top: 0;
margin-bottom: 0;
}
.md li > p {
margin-top: 16px;
}
.md li + li {
margin-top: 0.25em;
}
.md dl {
padding: 0;
}
.md dl dt {
padding: 0;
margin-top: 16px;
font-size: 1em;
font-style: italic;
font-weight: 600;
}
.md dl dd {
padding: 0 16px;
margin-bottom: 16px;
}
.md table th {
font-weight: 600;
}
.md table th,
.md table td {
padding: 6px 13px;
border: 1px solid var(--color-border-default);
}
.md table tr {
background-color: var(--color-canvas-default);
border-top: 1px solid var(--color-border-muted);
}
.md table tr:nth-child(2n) {
background-color: var(--color-canvas-subtle);
}
.md table img {
background-color: transparent;
}
.md img[align="right"] {
padding-left: 20px;
}
.md img[align="left"] {
padding-right: 20px;
}
.md span.frame {
display: block;
overflow: hidden;
}
.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);
}
.md span.frame span img {
display: block;
float: left;
}
.md span.frame span span {
display: block;
padding: 5px 0 0;
clear: both;
color: var(--color-fg-default);
}
.md span.align-center {
display: block;
overflow: hidden;
clear: both;
}
.md span.align-center > span {
display: block;
margin: 13px auto 0;
overflow: hidden;
text-align: center;
}
.md span.align-center span img {
margin: 0 auto;
text-align: center;
}
.md span.align-right {
display: block;
overflow: hidden;
clear: both;
}
.md span.align-right > span {
display: block;
margin: 13px 0 0;
overflow: hidden;
text-align: right;
}
.md span.align-right span img {
margin: 0;
text-align: right;
}
.md span.float-left {
display: block;
float: left;
margin-right: 13px;
overflow: hidden;
}
.md span.float-left span {
margin: 13px 0 0;
}
.md span.float-right {
display: block;
float: right;
margin-left: 13px;
overflow: hidden;
}
.md span.float-right > span {
display: block;
margin: 13px auto 0;
overflow: hidden;
text-align: right;
}
.md code,
.md tt {
padding: 0.2em 0.4em;
margin: 0;
font-size: 85%;
background-color: var(--color-neutral-muted);
border-radius: 6px;
}
.md code br,
.md tt br {
display: none;
}
.md del code {
text-decoration: inherit;
}
.md pre code {
font-size: 100%;
}
.md pre > code {
padding: 0;
margin: 0;
word-break: normal;
white-space: pre;
background: transparent;
border: 0;
}
.md .highlight {
margin-bottom: 16px;
}
.md .highlight pre {
margin-bottom: 0;
word-break: normal;
}
.md .highlight pre,
.md pre {
padding: 16px;
overflow: auto;
font-size: 85%;
line-height: 1.45;
background-color: var(--color-canvas-subtle);
border-radius: 6px;
}
.md pre code,
.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;
}
.md .csv-data td,
.md .csv-data th {
padding: 5px;
overflow: hidden;
font-size: 12px;
line-height: 1;
text-align: left;
white-space: nowrap;
}
.md .csv-data .blob-num {
padding: 10px 8px 9px;
text-align: right;
background: var(--color-canvas-default);
border: 0;
}
.md .csv-data tr {
border-top: 0;
}
.md .csv-data th {
font-weight: 600;
background: var(--color-canvas-subtle);
border-top: 0;
}
.md .footnotes {
font-size: 12px;
color: var(--color-fg-muted);
border-top: 1px solid var(--color-border-default);
}
.md .footnotes ol {
padding-left: 16px;
}
.md .footnotes li {
position: relative;
}
.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;
}
.md .footnotes li:target {
color: var(--color-fg-default);
}
.md .task-list-item {
list-style-type: none;
}
.md .task-list-item label {
font-weight: 400;
}
.md .task-list-item.enabled label {
cursor: pointer;
}
.md .task-list-item + .task-list-item {
margin-top: 3px;
}
.md .task-list-item .handle {
display: none;
}
.md .task-list-item-checkbox {
margin: 0 0.2em 0.25em -1.6em;
vertical-align: middle;
}
.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-2389900904)" /></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-2389900904)" /></g><mask id="d2-2389900904" maskUnits="userSpaceOnUse" x="11" y="11" width="381" height="374">
<rect x="11" y="11" width="381" height="374" fill="white"></rect>
</mask></svg></svg>