Skip to content

Commit

Permalink
Add OAuth to spec: first version
Browse files Browse the repository at this point in the history
Signed-off-by: MartenMeijboom98 <[email protected]>
  • Loading branch information
MartenMeijboom98 committed Mar 4, 2025
1 parent 4f973dc commit a07b6a5
Show file tree
Hide file tree
Showing 9 changed files with 488 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" version="26.0.16">
<diagram name="Page-1" id="gtFMIL0vCVhz1ZIX3VAr">
<mxGraphModel dx="951" dy="593" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="6zocnoXHrxWYXSwQewhK-1" value="DSO Shapeshifter implementation" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="120" y="440" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="6zocnoXHrxWYXSwQewhK-2" value="AGR Shapeshifter implementation" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="480" y="440" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="6zocnoXHrxWYXSwQewhK-3" value="DSO OAuth provider" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="120" y="300" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="6zocnoXHrxWYXSwQewhK-7" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="179.74" y="440" as="sourcePoint" />
<mxPoint x="179.74" y="360" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="6zocnoXHrxWYXSwQewhK-8" value="Verify provided token" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="6zocnoXHrxWYXSwQewhK-7">
<mxGeometry x="-0.2408" y="-2" relative="1" as="geometry">
<mxPoint x="-62" y="-9" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="6zocnoXHrxWYXSwQewhK-11" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="6zocnoXHrxWYXSwQewhK-2" target="6zocnoXHrxWYXSwQewhK-3">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="420" y="420" as="sourcePoint" />
<mxPoint x="470" y="370" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="6zocnoXHrxWYXSwQewhK-14" value="Request token" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="6zocnoXHrxWYXSwQewhK-11">
<mxGeometry x="-0.0574" relative="1" as="geometry">
<mxPoint x="3" y="-22" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="6zocnoXHrxWYXSwQewhK-15" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="239.99999999999977" y="460" as="sourcePoint" />
<mxPoint x="480.0000000000002" y="460" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="6zocnoXHrxWYXSwQewhK-18" value="FlexMessage communication&lt;br&gt;without OAuth" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="6zocnoXHrxWYXSwQewhK-15">
<mxGeometry x="-0.0303" y="-2" relative="1" as="geometry">
<mxPoint x="-4" y="-17" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="6zocnoXHrxWYXSwQewhK-16" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="480.0000000000002" y="480" as="sourcePoint" />
<mxPoint x="239.99999999999977" y="480" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="6zocnoXHrxWYXSwQewhK-17" value="FlexMessage communication&lt;br&gt;including token in header" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="6zocnoXHrxWYXSwQewhK-16">
<mxGeometry x="-0.0443" y="-1" relative="1" as="geometry">
<mxPoint x="-5" y="16" as="offset" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
130 changes: 130 additions & 0 deletions diagrams/example-dso-only-implementation-using-oauth-sequence.drawio
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" version="26.0.16">
<diagram name="Page-1" id="2YBvvXClWsGukQMizWep">
<mxGraphModel dx="1446" dy="902" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="aM9ryv3xv72pqoxQDRHE-1" value="DSO Shapeshifter implementation" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};" parent="1" vertex="1">
<mxGeometry x="260" y="40" width="100" height="470" as="geometry" />
</mxCell>
<mxCell id="aM9ryv3xv72pqoxQDRHE-2" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};" parent="aM9ryv3xv72pqoxQDRHE-1" vertex="1">
<mxGeometry x="45" y="70" width="10" height="380" as="geometry" />
</mxCell>
<mxCell id="aM9ryv3xv72pqoxQDRHE-5" value="AGR Shapeshifter implementation" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};" parent="1" vertex="1">
<mxGeometry x="520" y="40" width="100" height="470" as="geometry" />
</mxCell>
<mxCell id="aM9ryv3xv72pqoxQDRHE-6" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};" parent="aM9ryv3xv72pqoxQDRHE-5" vertex="1">
<mxGeometry x="45" y="80" width="10" height="370" as="geometry" />
</mxCell>
<mxCell id="lyQrfiTIocs9oVFMV8gG-19" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="aM9ryv3xv72pqoxQDRHE-5">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="55" y="170" as="sourcePoint" />
<mxPoint x="55" y="190" as="targetPoint" />
<Array as="points">
<mxPoint x="80" y="170" />
<mxPoint x="80" y="190" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lyQrfiTIocs9oVFMV8gG-20" value="Verify message" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="lyQrfiTIocs9oVFMV8gG-19">
<mxGeometry x="-0.0686" y="-3" relative="1" as="geometry">
<mxPoint x="43" y="2" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="lyQrfiTIocs9oVFMV8gG-3" value="DSO OAuth Provider" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};" vertex="1" parent="1">
<mxGeometry x="760" y="40" width="100" height="470" as="geometry" />
</mxCell>
<mxCell id="lyQrfiTIocs9oVFMV8gG-4" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={&quot;edgeStyle&quot;:&quot;elbowEdgeStyle&quot;,&quot;elbow&quot;:&quot;vertical&quot;,&quot;curved&quot;:0,&quot;rounded&quot;:0};" vertex="1" parent="lyQrfiTIocs9oVFMV8gG-3">
<mxGeometry x="45" y="80" width="10" height="370" as="geometry" />
</mxCell>
<mxCell id="lyQrfiTIocs9oVFMV8gG-21" value="Request token" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry y="10" width="50" height="50" relative="1" as="geometry">
<mxPoint x="575" y="280" as="sourcePoint" />
<mxPoint x="805" y="280" as="targetPoint" />
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="lyQrfiTIocs9oVFMV8gG-22" value="" style="endArrow=classic;html=1;rounded=0;dashed=1;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="805" y="309.6" as="sourcePoint" />
<mxPoint x="575" y="309.6" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lyQrfiTIocs9oVFMV8gG-23" value="Return token" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="lyQrfiTIocs9oVFMV8gG-22">
<mxGeometry x="-0.2191" y="1" relative="1" as="geometry">
<mxPoint x="-25" y="-11" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="lyQrfiTIocs9oVFMV8gG-29" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="315" y="140" as="sourcePoint" />
<mxPoint x="565" y="140" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lyQrfiTIocs9oVFMV8gG-30" value="Send FlexRequest" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="lyQrfiTIocs9oVFMV8gG-29">
<mxGeometry x="0.1824" y="2" relative="1" as="geometry">
<mxPoint x="-23" y="-8" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="lyQrfiTIocs9oVFMV8gG-31" value="" style="endArrow=classic;html=1;rounded=0;dashed=1;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="565" y="180" as="sourcePoint" />
<mxPoint x="315" y="180" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lyQrfiTIocs9oVFMV8gG-32" value="Return 200 OK" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="lyQrfiTIocs9oVFMV8gG-31">
<mxGeometry x="-0.2191" y="1" relative="1" as="geometry">
<mxPoint x="-27" y="-11" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="lyQrfiTIocs9oVFMV8gG-33" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="565" y="340" as="sourcePoint" />
<mxPoint x="315" y="340" as="targetPoint" />
<Array as="points">
<mxPoint x="430" y="340" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lyQrfiTIocs9oVFMV8gG-34" value="Send FlexRequestResponse,&lt;br&gt;including token in header" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="lyQrfiTIocs9oVFMV8gG-33">
<mxGeometry x="-0.4426" y="-2" relative="1" as="geometry">
<mxPoint x="-45" y="-13" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="lyQrfiTIocs9oVFMV8gG-35" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="315" y="380" as="sourcePoint" />
<mxPoint x="805" y="380" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lyQrfiTIocs9oVFMV8gG-36" value="Verify token" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="lyQrfiTIocs9oVFMV8gG-35">
<mxGeometry x="-0.5829" relative="1" as="geometry">
<mxPoint x="23" y="-10" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="lyQrfiTIocs9oVFMV8gG-37" value="" style="endArrow=classic;html=1;rounded=0;dashed=1;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="805" y="420" as="sourcePoint" />
<mxPoint x="315" y="420" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lyQrfiTIocs9oVFMV8gG-38" value="Return verification result" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="lyQrfiTIocs9oVFMV8gG-37">
<mxGeometry x="-0.2191" y="1" relative="1" as="geometry">
<mxPoint x="66" y="-11" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="lyQrfiTIocs9oVFMV8gG-39" value="" style="endArrow=classic;html=1;rounded=0;dashed=1;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="315" y="460" as="sourcePoint" />
<mxPoint x="565" y="460" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lyQrfiTIocs9oVFMV8gG-40" value="Return 200 OK" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="lyQrfiTIocs9oVFMV8gG-39">
<mxGeometry x="-0.2191" y="1" relative="1" as="geometry">
<mxPoint x="27" y="-11" as="offset" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
72 changes: 72 additions & 0 deletions diagrams/example-full-implementation-using-oauth-components.drawio
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" version="26.0.16">
<diagram name="Page-1" id="gtFMIL0vCVhz1ZIX3VAr">
<mxGraphModel dx="951" dy="593" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="6zocnoXHrxWYXSwQewhK-1" value="DSO Shapeshifter implementation" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="120" y="440" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="6zocnoXHrxWYXSwQewhK-2" value="AGR Shapeshifter implementation" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="480" y="440" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="6zocnoXHrxWYXSwQewhK-3" value="DSO OAuth provider" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="120" y="300" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="6zocnoXHrxWYXSwQewhK-4" value="AGR OAuth provider" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="480" y="300" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="6zocnoXHrxWYXSwQewhK-5" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="6zocnoXHrxWYXSwQewhK-2" target="6zocnoXHrxWYXSwQewhK-4">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="420" y="420" as="sourcePoint" />
<mxPoint x="470" y="370" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="6zocnoXHrxWYXSwQewhK-6" value="Verify provided token" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="6zocnoXHrxWYXSwQewhK-5">
<mxGeometry x="-0.2408" y="-2" relative="1" as="geometry">
<mxPoint x="58" y="-9" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="6zocnoXHrxWYXSwQewhK-7" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="179.74" y="440" as="sourcePoint" />
<mxPoint x="179.74" y="360" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="6zocnoXHrxWYXSwQewhK-8" value="Verify provided token" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="6zocnoXHrxWYXSwQewhK-7">
<mxGeometry x="-0.2408" y="-2" relative="1" as="geometry">
<mxPoint x="58" y="-9" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="6zocnoXHrxWYXSwQewhK-9" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.987;exitY=0.073;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="6zocnoXHrxWYXSwQewhK-1" target="6zocnoXHrxWYXSwQewhK-4">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="420" y="420" as="sourcePoint" />
<mxPoint x="470" y="370" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="6zocnoXHrxWYXSwQewhK-10" value="Request token" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="6zocnoXHrxWYXSwQewhK-9">
<mxGeometry x="-0.1162" y="1" relative="1" as="geometry">
<mxPoint x="80" y="-6" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="6zocnoXHrxWYXSwQewhK-11" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="6zocnoXHrxWYXSwQewhK-2" target="6zocnoXHrxWYXSwQewhK-3">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="420" y="420" as="sourcePoint" />
<mxPoint x="470" y="370" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="6zocnoXHrxWYXSwQewhK-12" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="6zocnoXHrxWYXSwQewhK-1" target="6zocnoXHrxWYXSwQewhK-2">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="420" y="420" as="sourcePoint" />
<mxPoint x="470" y="370" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="6zocnoXHrxWYXSwQewhK-13" value="FlexMessage communication&lt;br&gt;including tokens in header" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="6zocnoXHrxWYXSwQewhK-12">
<mxGeometry x="0.0268" y="2" relative="1" as="geometry">
<mxPoint y="22" as="offset" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
Loading

0 comments on commit a07b6a5

Please sign in to comment.