📁
SKYSHELL MANAGER
PHP v8.2.31
Create
Create
Path:
root
/
home
/
thevaxnx
/
nativize.com
/
staging
/
wp-includes
/
js
/
tinymce
/
themes
/
Name
Size
Perm
Actions
📁
inlite
-
0755
🗑️
🏷️
🔒
📁
modern
-
0755
🗑️
🏷️
🔒
📄
wp-links-opml.php
6.83 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
Edit: Classes.svg
<?xml version="1.0" encoding="UTF-8"?> <!-- Do not edit this file with editors other than diagrams.net --> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1653px" height="1152px" viewBox="-0.5 -0.5 1653 1152" content="<mxfile host="Electron" modified="2023-05-26T08:31:40.045Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.2.8 Chrome/112.0.5615.165 Electron/24.2.0 Safari/537.36" etag="JM2M7K0e4V0A45HPBuQb" version="21.2.8" type="device"> <diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1"> <mxGraphModel dx="1449" dy="450" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0"> <root> <mxCell id="WIyWlLk6GJQsqaUBKTNV-0" /> <mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0" /> <mxCell id="zkfFHV4jXpPFQw0GAbJ--16" value="" style="endArrow=block;endSize=10;endFill=0;shadow=0;strokeWidth=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=horizontal;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="u7erIZxzKKhx946gxsI2-0" target="v_oZCs1MGEyOnMnWpm-Y-0" edge="1"> <mxGeometry width="160" relative="1" as="geometry"> <mxPoint x="351" y="373" as="sourcePoint" /> <mxPoint x="451" y="271" as="targetPoint" /> <Array as="points"> <mxPoint x="830" y="620" /> <mxPoint x="820" y="640" /> <mxPoint x="810" y="614" /> </Array> </mxGeometry> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-4" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="zkfFHV4jXpPFQw0GAbJ--0" target="u7erIZxzKKhx946gxsI2-0" edge="1"> <mxGeometry width="160" relative="1" as="geometry"> <mxPoint x="273.03999999999996" y="268" as="sourcePoint" /> <mxPoint x="210" y="370" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-10" value="Creates" style="endArrow=open;endSize=12;dashed=1;html=1;entryX=0.032;entryY=-0.015;entryDx=0;entryDy=0;entryPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="zkfFHV4jXpPFQw0GAbJ--17" target="u7erIZxzKKhx946gxsI2-0" edge="1"> <mxGeometry width="160" relative="1" as="geometry"> <mxPoint x="361.0445920953489" y="268" as="sourcePoint" /> <mxPoint x="526" y="490.98" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-11" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="zkfFHV4jXpPFQw0GAbJ--17" target="zkfFHV4jXpPFQw0GAbJ--6" edge="1"> <mxGeometry width="160" relative="1" as="geometry"> <mxPoint x="558.8013698630139" y="268" as="sourcePoint" /> <mxPoint x="551.1986301369861" y="490" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-27" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="zkfFHV4jXpPFQw0GAbJ--0" target="u7erIZxzKKhx946gxsI2-36" edge="1"> <mxGeometry width="160" relative="1" as="geometry"> <mxPoint x="660" y="220" as="sourcePoint" /> <mxPoint x="710.0000000000002" y="206.57894736842127" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-28" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="zkfFHV4jXpPFQw0GAbJ--0" target="u7erIZxzKKhx946gxsI2-20" edge="1"> <mxGeometry width="160" relative="1" as="geometry"> <mxPoint x="630" y="221.8909090909092" as="sourcePoint" /> <mxPoint x="720" y="205.20000000000005" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-71" value="" style="endArrow=none;html=1;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="zkfFHV4jXpPFQw0GAbJ--6" target="zkfFHV4jXpPFQw0GAbJ--13" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="390" y="840" as="sourcePoint" /> <mxPoint x="550" y="840" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-72" value="1" style="resizable=0;html=1;align=left;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="u7erIZxzKKhx946gxsI2-71" connectable="0" vertex="1"> <mxGeometry x="-1" relative="1" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-73" value="*" style="resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontSize=10;" parent="u7erIZxzKKhx946gxsI2-71" connectable="0" vertex="1"> <mxGeometry x="1" relative="1" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-80" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.002;entryY=0.433;entryDx=0;entryDy=0;entryPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="u7erIZxzKKhx946gxsI2-15" target="u7erIZxzKKhx946gxsI2-75" edge="1"> <mxGeometry width="160" relative="1" as="geometry"> <mxPoint x="265" y="980.4905882352941" as="sourcePoint" /> <mxPoint x="425" y="949.9964705882353" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-84" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="u7erIZxzKKhx946gxsI2-81" target="u7erIZxzKKhx946gxsI2-75" edge="1"> <mxGeometry width="160" relative="1" as="geometry"> <mxPoint x="310" y="1038" as="sourcePoint" /> <mxPoint x="470" y="1038" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-85" value="Creates" style="endArrow=open;endSize=12;dashed=1;html=1;entryX=0.309;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="zkfFHV4jXpPFQw0GAbJ--6" target="u7erIZxzKKhx946gxsI2-14" edge="1"> <mxGeometry width="160" relative="1" as="geometry"> <mxPoint x="20.001439123578564" y="876" as="sourcePoint" /> <mxPoint x="398.66" y="1081.98" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-75" value="HttpClientAdapter" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=40;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#ffe6cc;strokeColor=#d79b00;movableLabel=0;resizeHeight=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1"> <mxGeometry x="560" y="884" width="290" height="118" as="geometry"> <mxRectangle x="220" y="120" width="160" height="26" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-76" value="~ sendRequest(method, uri, options): Psr7Response" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-75" vertex="1"> <mxGeometry y="40" width="290" height="26" as="geometry" /> </mxCell> <mxCell id="rVAlodFFeOMfBNMGurua-0" value="# checkSameDomainAsBase(uri): bool" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-75" vertex="1"> <mxGeometry y="66" width="290" height="26" as="geometry" /> </mxCell> <mxCell id="rVAlodFFeOMfBNMGurua-1" value="# getDomainFromSubdomain(subdomain): string" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=4" parent="u7erIZxzKKhx946gxsI2-75" vertex="1"> <mxGeometry y="92" width="290" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-14" value="CardDavClient" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1"> <mxGeometry x="60" y="852" width="400" height="346" as="geometry"> <mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-16" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-14" vertex="1"> <mxGeometry y="26" width="400" height="8" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-15" value="~ syncCollection(abookUri, syncToken): Multistatus" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-14" vertex="1"> <mxGeometry y="34" width="400" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-86" value="~ getResource(uri): Psr7Response" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-14" vertex="1"> <mxGeometry y="60" width="400" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-87" value="~ getAddressObject(uri): array" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-14" vertex="1"> <mxGeometry y="86" width="400" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-88" value="~ deleteResource(uri): void" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-14" vertex="1"> <mxGeometry y="112" width="400" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-89" value="~ updateResource(body, uri, etag): ?string" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-14" vertex="1"> <mxGeometry y="138" width="400" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-90" value="~ createResource(body, suggestedUri, post): array" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-14" vertex="1"> <mxGeometry y="164" width="400" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-91" value="~ multiGet(abookUri, requestedUris, requestedVCardProps): Multistatus" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-14" vertex="1"> <mxGeometry y="190" width="400" height="26" as="geometry" /> </mxCell> <mxCell id="y4LscSbAUotfE9np0VlY-0" value="~ query(abookUri, filter, requestedVCardProps, limit): Multistatus" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-14" vertex="1"> <mxGeometry y="216" width="400" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-92" value="~ findProperties(uri, props, depth): array" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-14" vertex="1"> <mxGeometry y="242" width="400" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-93" value="~ absoluteUrl(relurl): string" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-14" vertex="1"> <mxGeometry y="268" width="400" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-94" value="~ concatUrl(baseurl, relurl): string" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=4" parent="u7erIZxzKKhx946gxsI2-14" vertex="1"> <mxGeometry y="294" width="400" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-95" value="~ compareUrlPaths(url1, url2): bool" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=4" parent="u7erIZxzKKhx946gxsI2-14" vertex="1"> <mxGeometry y="320" width="400" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-96" value="" style="endArrow=none;html=1;strokeWidth=5;dashed=1;strokeColor=#7D7D7D;" parent="WIyWlLk6GJQsqaUBKTNV-1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="-320" y="440" as="sourcePoint" /> <mxPoint x="1300" y="440" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-97" value="" style="endArrow=none;html=1;strokeWidth=5;dashed=1;strokeColor=#7D7D7D;" parent="WIyWlLk6GJQsqaUBKTNV-1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="-320" y="820" as="sourcePoint" /> <mxPoint x="1300" y="820" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-99" value="&lt;h1&gt;Services&lt;/h1&gt;&lt;p&gt;This layer contains classes that implement high-level public services against CardDAV servers.&lt;/p&gt;" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1"> <mxGeometry x="1140" y="175" width="190" height="120" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-100" value="&lt;h1&gt;Public Entities&lt;/h1&gt;&lt;p&gt;This layer contains entities part of the public interface.&lt;/p&gt;" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1"> <mxGeometry x="1140" y="525" width="190" height="85" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-101" value="Public classes / interfaces are colored blue,&lt;br&gt;internal classes / interfaces are colored orange.&lt;br&gt;&lt;br&gt;Only methods marked as public (+) are public interface. Methods marked as package (~) are public in the code, but meant for library-internal use only." style="shape=note;whiteSpace=wrap;html=1;size=14;verticalAlign=top;align=left;spacingTop=-6;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1"> <mxGeometry x="20" y="50" width="280" height="110" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-102" value="&lt;h1&gt;Private Comms&lt;/h1&gt;&lt;p&gt;This layer contains internal classes that implement the low-level communication with the CardDAV server.&lt;/p&gt;" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1"> <mxGeometry x="1140" y="850" width="190" height="120" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-107" value="XmlElements" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1"> <mxGeometry x="-225" y="877.5" width="100" height="65" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-110" value="Exception" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1"> <mxGeometry x="-220" y="630" width="100" height="65" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-104" value="Config" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1"> <mxGeometry x="-275" y="490" width="210" height="70" as="geometry"> <mxRectangle x="550" y="140" width="160" height="26" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-105" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-104" vertex="1"> <mxGeometry y="26" width="210" height="8" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-106" value="+ init(logger, httplogger)" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=4" parent="u7erIZxzKKhx946gxsI2-104" vertex="1"> <mxGeometry y="34" width="210" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-111" value="" style="endArrow=none;html=1;strokeWidth=5;dashed=1;strokeColor=#7D7D7D;" parent="WIyWlLk6GJQsqaUBKTNV-1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="-40" y="100" as="sourcePoint" /> <mxPoint x="-40" y="1183.3333333333333" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-112" value="&lt;h1&gt;Infrastructure&lt;/h1&gt;&lt;p&gt;Cross-cutting infrastructure and support classes.&lt;/p&gt;" style="text;html=1;strokeColor=none;fillColor=none;spacing=5;spacingTop=-20;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1"> <mxGeometry x="-280" y="192.5" width="190" height="85" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-81" value="HttpClientAdapterGuzzle" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1"> <mxGeometry x="625" y="1060" width="160" height="34" as="geometry"> <mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-83" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-81" vertex="1"> <mxGeometry y="26" width="160" height="8" as="geometry" /> </mxCell> <mxCell id="zkfFHV4jXpPFQw0GAbJ--6" value="Account" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1"> <mxGeometry x="-20" y="480" width="320" height="242" as="geometry"> <mxRectangle x="130" y="380" width="160" height="26" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="zkfFHV4jXpPFQw0GAbJ--7" value="- httpOptions: array{username, password, verify, ...}" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--6" vertex="1"> <mxGeometry y="26" width="320" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-48" value="- discoveryUri: string" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="zkfFHV4jXpPFQw0GAbJ--6" vertex="1"> <mxGeometry y="52" width="320" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-49" value="- baseUrl: string" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" parent="zkfFHV4jXpPFQw0GAbJ--6" vertex="1"> <mxGeometry y="78" width="320" height="26" as="geometry" /> </mxCell> <mxCell id="zkfFHV4jXpPFQw0GAbJ--9" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--6" vertex="1"> <mxGeometry y="104" width="320" height="8" as="geometry" /> </mxCell> <mxCell id="zkfFHV4jXpPFQw0GAbJ--11" value="+ getDiscoveryUri(): string" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--6" vertex="1"> <mxGeometry y="112" width="320" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-6" value="+ getUrl(): string" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--6" vertex="1"> <mxGeometry y="138" width="320" height="26" as="geometry" /> </mxCell> <mxCell id="zkfFHV4jXpPFQw0GAbJ--10" value="~ getClient(baseUrl): CardDavClient" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=0" parent="zkfFHV4jXpPFQw0GAbJ--6" vertex="1"> <mxGeometry y="164" width="320" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-50" value="~ findCurrentUserPrincipal(contextPathUri): ?string" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--6" vertex="1"> <mxGeometry y="190" width="320" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-51" value="~ findAddressbookHomes(principalUri): null | string[]" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--6" vertex="1"> <mxGeometry y="216" width="320" height="26" as="geometry" /> </mxCell> <mxCell id="v_oZCs1MGEyOnMnWpm-Y-11" value="" style="endArrow=block;endSize=10;endFill=0;shadow=0;strokeWidth=1;rounded=0;edgeStyle=elbowEdgeStyle;elbow=horizontal;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="v_oZCs1MGEyOnMnWpm-Y-0" target="zkfFHV4jXpPFQw0GAbJ--13" edge="1"> <mxGeometry width="160" relative="1" as="geometry"> <mxPoint x="860" y="624" as="sourcePoint" /> <mxPoint x="820" y="624" as="targetPoint" /> <Array as="points"> <mxPoint x="590" y="620" /> <mxPoint x="580" y="600" /> <mxPoint x="600" y="624" /> </Array> </mxGeometry> </mxCell> <mxCell id="zkfFHV4jXpPFQw0GAbJ--0" value="Sync" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1"> <mxGeometry x="860" y="227" width="270" height="68" as="geometry"> <mxRectangle x="220" y="120" width="160" height="26" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="zkfFHV4jXpPFQw0GAbJ--4" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--0" vertex="1"> <mxGeometry y="26" width="270" height="8" as="geometry" /> </mxCell> <mxCell id="zkfFHV4jXpPFQw0GAbJ--5" value="+ synchronize(abook, ..., prevSyncToken): string" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--0" vertex="1"> <mxGeometry y="34" width="270" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-36" value="«interface»&#xa;SyncHandler" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=40;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#dae8fc;strokeColor=#6c8ebf;movableLabel=0;resizeHeight=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1"> <mxGeometry x="520" y="50" width="260" height="150" as="geometry"> <mxRectangle x="220" y="120" width="160" height="26" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-42" value="+ addressObjectChanged(uri, etag, card): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-36" vertex="1"> <mxGeometry y="40" width="260" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-43" value="+ addressObjectDeleted(uri): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-36" vertex="1"> <mxGeometry y="66" width="260" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-45" value="+ getExistingVCardETags(): string[]" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-36" vertex="1"> <mxGeometry y="92" width="260" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-46" value="+ finalizeSync(): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-36" vertex="1"> <mxGeometry y="118" width="260" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-20" value="SyncResult" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1"> <mxGeometry x="520" y="210" width="260" height="164" as="geometry"> <mxRectangle x="220" y="120" width="160" height="26" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-22" value="~ syncToken: string" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-20" vertex="1"> <mxGeometry y="26" width="260" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-29" value="~ syncAgain: bool" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-20" vertex="1"> <mxGeometry y="52" width="260" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-30" value="~ deletedObjects: string" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-20" vertex="1"> <mxGeometry y="78" width="260" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-31" value="~ changedObjects: array" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-20" vertex="1"> <mxGeometry y="104" width="260" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-21" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-20" vertex="1"> <mxGeometry y="130" width="260" height="8" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-32" value="~ createVCards(): bool" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-20" vertex="1"> <mxGeometry y="138" width="260" height="26" as="geometry" /> </mxCell> <mxCell id="zkfFHV4jXpPFQw0GAbJ--17" value="Discovery" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1"> <mxGeometry x="170" y="310" width="210" height="70" as="geometry"> <mxRectangle x="550" y="140" width="160" height="26" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="zkfFHV4jXpPFQw0GAbJ--23" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--17" vertex="1"> <mxGeometry y="26" width="210" height="8" as="geometry" /> </mxCell> <mxCell id="zkfFHV4jXpPFQw0GAbJ--24" value="+ discoverAddressbooks(account)" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--17" vertex="1"> <mxGeometry y="34" width="210" height="26" as="geometry" /> </mxCell> <mxCell id="zkfFHV4jXpPFQw0GAbJ--13" value="WebDavResource" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1"> <mxGeometry x="340" y="480" width="300" height="294" as="geometry"> <mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="zkfFHV4jXpPFQw0GAbJ--15" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--13" vertex="1"> <mxGeometry y="26" width="300" height="8" as="geometry" /> </mxCell> <mxCell id="v_oZCs1MGEyOnMnWpm-Y-15" value="+ createInstance(uri, account, restype): WebDavResource" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontStyle=4" parent="zkfFHV4jXpPFQw0GAbJ--13" vertex="1"> <mxGeometry y="34" width="300" height="26" as="geometry" /> </mxCell> <mxCell id="zkfFHV4jXpPFQw0GAbJ--14" value="+ refreshProperties(): void" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--13" vertex="1"> <mxGeometry y="60" width="300" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-55" value="+ getAccount(): Account" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--13" vertex="1"> <mxGeometry y="86" width="300" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-57" value="+ getUri(): string" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--13" vertex="1"> <mxGeometry y="112" width="300" height="26" as="geometry" /> </mxCell> <mxCell id="v_oZCs1MGEyOnMnWpm-Y-13" value="+ getUriPath(): string" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--13" vertex="1"> <mxGeometry y="138" width="300" height="26" as="geometry" /> </mxCell> <mxCell id="v_oZCs1MGEyOnMnWpm-Y-14" value="+ getBasename(): string" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--13" vertex="1"> <mxGeometry y="164" width="300" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-58" value="+ getSyncToken(): ?string" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--13" vertex="1"> <mxGeometry y="190" width="300" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-60" value="+ downloadResource(uri): array" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--13" vertex="1"> <mxGeometry y="216" width="300" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-56" value="~ getClient(): CardDavClient" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--13" vertex="1"> <mxGeometry y="242" width="300" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-61" value="# getProperties(): array" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="zkfFHV4jXpPFQw0GAbJ--13" vertex="1"> <mxGeometry y="268" width="300" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-0" value="AddressbookCollection" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1"> <mxGeometry x="910" y="480" width="270" height="294" as="geometry"> <mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-2" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-0" vertex="1"> <mxGeometry y="26" width="270" height="8" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-53" value="+ getName(): string" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-0" vertex="1"> <mxGeometry y="34" width="270" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-54" value="+ getDetails(): string" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-0" vertex="1"> <mxGeometry y="60" width="270" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-63" value="+ supportsMultiGet(): bool" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-0" vertex="1"> <mxGeometry y="86" width="270" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-64" value="+ getCTag(): ?string" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-0" vertex="1"> <mxGeometry y="112" width="270" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-65" value="+ getCard(uri): array" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-0" vertex="1"> <mxGeometry y="138" width="270" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-66" value="+ deleteCard(uri): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-0" vertex="1"> <mxGeometry y="164" width="270" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-67" value="+ createCard(vcard): array" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-0" vertex="1"> <mxGeometry y="190" width="270" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-68" value="+ updateCard(uri, vcard, etag): ?string" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-0" vertex="1"> <mxGeometry y="216" width="270" height="26" as="geometry" /> </mxCell> <mxCell id="e7asPVy4w3gbiPkJjLG5-0" value="+ query(conditions, props, matchAll, limit): array" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-0" vertex="1"> <mxGeometry y="242" width="270" height="26" as="geometry" /> </mxCell> <mxCell id="u7erIZxzKKhx946gxsI2-69" value="# validateCard(vcard): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="u7erIZxzKKhx946gxsI2-0" vertex="1"> <mxGeometry y="268" width="270" height="26" as="geometry" /> </mxCell> <mxCell id="v_oZCs1MGEyOnMnWpm-Y-0" value="WebDavCollection" style="swimlane;fontStyle=0;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1"> <mxGeometry x="670" y="544" width="210" height="140" as="geometry"> <mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="v_oZCs1MGEyOnMnWpm-Y-1" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="v_oZCs1MGEyOnMnWpm-Y-0" vertex="1"> <mxGeometry y="26" width="210" height="8" as="geometry" /> </mxCell> <mxCell id="v_oZCs1MGEyOnMnWpm-Y-2" value="+ getChildren(): WebDavResource[]" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="v_oZCs1MGEyOnMnWpm-Y-0" vertex="1"> <mxGeometry y="34" width="210" height="26" as="geometry" /> </mxCell> <mxCell id="v_oZCs1MGEyOnMnWpm-Y-5" value="+ getSyncToken(): ?string" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="v_oZCs1MGEyOnMnWpm-Y-0" vertex="1"> <mxGeometry y="60" width="210" height="26" as="geometry" /> </mxCell> <mxCell id="v_oZCs1MGEyOnMnWpm-Y-6" value="+ supportsSyncCollection(): bool" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="v_oZCs1MGEyOnMnWpm-Y-0" vertex="1"> <mxGeometry y="86" width="210" height="26" as="geometry" /> </mxCell> <mxCell id="v_oZCs1MGEyOnMnWpm-Y-10" value="# supportsReport(reportElem): bool" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="v_oZCs1MGEyOnMnWpm-Y-0" vertex="1"> <mxGeometry y="112" width="210" height="26" as="geometry" /> </mxCell> </root> </mxGraphModel> </diagram> </mxfile> "><defs><clipPath id="mx-clip-886-879-282-26-0"><rect x="886" y="879" width="282" height="26"/></clipPath><clipPath id="mx-clip-886-905-282-26-0"><rect x="886" y="905" width="282" height="26"/></clipPath><clipPath id="mx-clip-886-931-282-26-0"><rect x="886" y="931" width="282" height="26"/></clipPath><clipPath id="mx-clip-386-841-392-26-0"><rect x="386" y="841" width="392" height="26"/></clipPath><clipPath id="mx-clip-386-867-392-26-0"><rect x="386" y="867" width="392" height="26"/></clipPath><clipPath id="mx-clip-386-893-392-26-0"><rect x="386" y="893" width="392" height="26"/></clipPath><clipPath id="mx-clip-386-919-392-26-0"><rect x="386" y="919" width="392" height="26"/></clipPath><clipPath id="mx-clip-386-945-392-26-0"><rect x="386" y="945" width="392" height="26"/></clipPath><clipPath id="mx-clip-386-971-392-26-0"><rect x="386" y="971" width="392" height="26"/></clipPath><clipPath id="mx-clip-386-997-392-26-0"><rect x="386" y="997" width="392" height="26"/></clipPath><clipPath id="mx-clip-386-1023-392-26-0"><rect x="386" y="1023" width="392" height="26"/></clipPath><clipPath id="mx-clip-386-1049-392-26-0"><rect x="386" y="1049" width="392" height="26"/></clipPath><clipPath id="mx-clip-386-1075-392-26-0"><rect x="386" y="1075" width="392" height="26"/></clipPath><clipPath id="mx-clip-386-1101-392-26-0"><rect x="386" y="1101" width="392" height="26"/></clipPath><clipPath id="mx-clip-386-1127-392-26-0"><rect x="386" y="1127" width="392" height="26"/></clipPath><clipPath id="mx-clip-51-479-202-26-0"><rect x="51" y="479" width="202" height="26"/></clipPath><clipPath id="mx-clip-306-461-312-26-0"><rect x="306" y="461" width="312" height="26"/></clipPath><clipPath id="mx-clip-306-487-312-26-0"><rect x="306" y="487" width="312" height="26"/></clipPath><clipPath id="mx-clip-306-513-312-26-0"><rect x="306" y="513" width="312" height="26"/></clipPath><clipPath id="mx-clip-306-547-312-26-0"><rect x="306" y="547" width="312" height="26"/></clipPath><clipPath id="mx-clip-306-573-312-26-0"><rect x="306" y="573" width="312" height="26"/></clipPath><clipPath id="mx-clip-306-599-312-26-0"><rect x="306" y="599" width="312" height="26"/></clipPath><clipPath id="mx-clip-306-625-312-26-0"><rect x="306" y="625" width="312" height="26"/></clipPath><clipPath id="mx-clip-306-651-312-26-0"><rect x="306" y="651" width="312" height="26"/></clipPath><clipPath id="mx-clip-1186-216-262-26-0"><rect x="1186" y="216" width="262" height="26"/></clipPath><clipPath id="mx-clip-846-45-252-26-0"><rect x="846" y="45" width="252" height="26"/></clipPath><clipPath id="mx-clip-846-71-252-26-0"><rect x="846" y="71" width="252" height="26"/></clipPath><clipPath id="mx-clip-846-97-252-26-0"><rect x="846" y="97" width="252" height="26"/></clipPath><clipPath id="mx-clip-846-123-252-26-0"><rect x="846" y="123" width="252" height="26"/></clipPath><clipPath id="mx-clip-846-191-252-26-0"><rect x="846" y="191" width="252" height="26"/></clipPath><clipPath id="mx-clip-846-217-252-26-0"><rect x="846" y="217" width="252" height="26"/></clipPath><clipPath id="mx-clip-846-243-252-26-0"><rect x="846" y="243" width="252" height="26"/></clipPath><clipPath id="mx-clip-846-269-252-26-0"><rect x="846" y="269" width="252" height="26"/></clipPath><clipPath id="mx-clip-846-303-252-26-0"><rect x="846" y="303" width="252" height="26"/></clipPath><clipPath id="mx-clip-496-299-202-26-0"><rect x="496" y="299" width="202" height="26"/></clipPath><clipPath id="mx-clip-666-469-292-26-0"><rect x="666" y="469" width="292" height="26"/></clipPath><clipPath id="mx-clip-666-495-292-26-0"><rect x="666" y="495" width="292" height="26"/></clipPath><clipPath id="mx-clip-666-521-292-26-0"><rect x="666" y="521" width="292" height="26"/></clipPath><clipPath id="mx-clip-666-547-292-26-0"><rect x="666" y="547" width="292" height="26"/></clipPath><clipPath id="mx-clip-666-573-292-26-0"><rect x="666" y="573" width="292" height="26"/></clipPath><clipPath id="mx-clip-666-599-292-26-0"><rect x="666" y="599" width="292" height="26"/></clipPath><clipPath id="mx-clip-666-625-292-26-0"><rect x="666" y="625" width="292" height="26"/></clipPath><clipPath id="mx-clip-666-651-292-26-0"><rect x="666" y="651" width="292" height="26"/></clipPath><clipPath id="mx-clip-666-677-292-26-0"><rect x="666" y="677" width="292" height="26"/></clipPath><clipPath id="mx-clip-666-703-292-26-0"><rect x="666" y="703" width="292" height="26"/></clipPath><clipPath id="mx-clip-1236-469-262-26-0"><rect x="1236" y="469" width="262" height="26"/></clipPath><clipPath id="mx-clip-1236-495-262-26-0"><rect x="1236" y="495" width="262" height="26"/></clipPath><clipPath id="mx-clip-1236-521-262-26-0"><rect x="1236" y="521" width="262" height="26"/></clipPath><clipPath id="mx-clip-1236-547-262-26-0"><rect x="1236" y="547" width="262" height="26"/></clipPath><clipPath id="mx-clip-1236-573-262-26-0"><rect x="1236" y="573" width="262" height="26"/></clipPath><clipPath id="mx-clip-1236-599-262-26-0"><rect x="1236" y="599" width="262" height="26"/></clipPath><clipPath id="mx-clip-1236-625-262-26-0"><rect x="1236" y="625" width="262" height="26"/></clipPath><clipPath id="mx-clip-1236-651-262-26-0"><rect x="1236" y="651" width="262" height="26"/></clipPath><clipPath id="mx-clip-1236-677-262-26-0"><rect x="1236" y="677" width="262" height="26"/></clipPath><clipPath id="mx-clip-1236-703-262-26-0"><rect x="1236" y="703" width="262" height="26"/></clipPath><clipPath id="mx-clip-996-533-202-26-0"><rect x="996" y="533" width="202" height="26"/></clipPath><clipPath id="mx-clip-996-559-202-26-0"><rect x="996" y="559" width="202" height="26"/></clipPath><clipPath id="mx-clip-996-585-202-26-0"><rect x="996" y="585" width="202" height="26"/></clipPath><clipPath id="mx-clip-996-611-202-26-0"><rect x="996" y="611" width="202" height="26"/></clipPath></defs><g><path d="M 1232 577 L 1214.12 577" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1203.12 577 L 1214.12 571.5 L 1214.12 582.5 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 1321.64 245 L 1346.62 427.78" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1338.57 416.89 L 1346.77 428.89 L 1351.45 415.13" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 337px; margin-left: 1334px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Use</div></div></div></foreignObject><text x="1334" y="341" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Use</text></switch></g><path d="M 702 316.3 L 1238.45 425.15" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1225.51 429.15 L 1239.54 425.37 L 1228.1 416.41" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 371px; margin-left: 971px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Creates</div></div></div></foreignObject><text x="971" y="374" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Creates</text></switch></g><path d="M 578.54 330 L 526.85 428.02" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 526.64 414.48 L 526.33 429.01 L 538.14 420.54" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 380px; margin-left: 552px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Use</div></div></div></foreignObject><text x="552" y="383" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Use</text></switch></g><path d="M 1230.75 177 L 1104.08 127.07" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1117.52 125.38 L 1103.04 126.66 L 1112.75 137.47" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 152px; margin-left: 1166px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Use</div></div></div></foreignObject><text x="1166" y="155" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Use</text></switch></g><path d="M 1182 223.13 L 1104.23 230.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1115.48 222.58 L 1103.11 230.22 L 1116.64 235.53" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 227px; margin-left: 1142px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Use</div></div></div></foreignObject><text x="1142" y="230" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Use</text></switch></g><path d="M 622 562.89 L 662 565.86" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 560px; margin-left: 624px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">1</div></div></div></foreignObject><text x="624" y="560" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="10px">1</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-end; width: 1px; height: 1px; padding-top: 563px; margin-left: 660px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">*</div></div></div></foreignObject><text x="660" y="563" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="10px" text-anchor="end">*</text></switch></g><path d="M 782 849 L 879.32 884.33" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 865.93 886.39 L 880.37 884.71 L 870.37 874.17" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 867px; margin-left: 832px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Use</div></div></div></foreignObject><text x="832" y="870" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Use</text></switch></g><path d="M 1027 1010 L 1027 966.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 1027 953.12 L 1033.5 966.12 L 1020.5 966.12 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 483.02 672 L 505.22 799.8" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 496.78 789.2 L 505.41 800.9 L 509.59 786.98" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 737px; margin-left: 494px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Creates</div></div></div></foreignObject><text x="494" y="740" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Creates</text></switch></g><path d="M 882 874 L 882 834 L 1172 834 L 1172 874" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 882 874 L 882 952 L 1172 952 L 1172 874" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><path d="M 882 874 L 1172 874" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-style="italic" pointer-events="none" text-anchor="middle" font-size="12px"><text x="1026.5" y="851.5">HttpClientAdapter</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-886-879-282-26-0)" font-size="12px"><text x="887.5" y="891.5">~ sendRequest(method, uri, options): Psr7Response</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-886-905-282-26-0)" font-size="12px"><text x="887.5" y="917.5"># checkSameDomainAsBase(uri): bool</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-886-931-282-26-0)" font-size="12px"><text x="887.5" y="943.5"># getDomainFromSubdomain(subdomain): string</text></g><path d="M 382 828 L 382 802 L 782 802 L 782 828" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><path d="M 382 828 L 382 1148 L 782 1148 L 782 828" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><path d="M 382 828 L 782 828" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="581.5" y="819.5">CardDavClient</text></g><path d="M 382 832 L 782 832" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-386-841-392-26-0)" font-size="12px"><text x="387.5" y="853.5">~ syncCollection(abookUri, syncToken): Multistatus</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-386-867-392-26-0)" font-size="12px"><text x="387.5" y="879.5">~ getResource(uri): Psr7Response</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-386-893-392-26-0)" font-size="12px"><text x="387.5" y="905.5">~ getAddressObject(uri): array</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-386-919-392-26-0)" font-size="12px"><text x="387.5" y="931.5">~ deleteResource(uri): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-386-945-392-26-0)" font-size="12px"><text x="387.5" y="957.5">~ updateResource(body, uri, etag): ?string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-386-971-392-26-0)" font-size="12px"><text x="387.5" y="983.5">~ createResource(body, suggestedUri, post): array</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-386-997-392-26-0)" font-size="12px"><text x="387.5" y="1009.5">~ multiGet(abookUri, requestedUris, requestedVCardProps): Multistatus</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-386-1023-392-26-0)" font-size="12px"><text x="387.5" y="1035.5">~ query(abookUri, filter, requestedVCardProps, limit): Multistatus</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-386-1049-392-26-0)" font-size="12px"><text x="387.5" y="1061.5">~ findProperties(uri, props, depth): array</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-386-1075-392-26-0)" font-size="12px"><text x="387.5" y="1087.5">~ absoluteUrl(relurl): string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-386-1101-392-26-0)" font-size="12px"><text x="387.5" y="1113.5">~ concatUrl(baseurl, relurl): string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-386-1127-392-26-0)" font-size="12px"><text x="387.5" y="1139.5">~ compareUrlPaths(url1, url2): bool</text></g><path d="M 2 390 L 1622 390" fill="none" stroke="#7d7d7d" stroke-width="5" stroke-miterlimit="10" stroke-dasharray="15 15" pointer-events="none"/><path d="M 2 770 L 1622 770" fill="none" stroke="#7d7d7d" stroke-width="5" stroke-miterlimit="10" stroke-dasharray="15 15" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 182px; height: 1px; padding-top: 115px; margin-left: 1467px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 130px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><h1>Services</h1><p>This layer contains classes that implement high-level public services against CardDAV servers.</p></div></div></div></foreignObject><text x="1467" y="127" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Services...</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 182px; height: 1px; padding-top: 465px; margin-left: 1467px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 95px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><h1>Public Entities</h1><p>This layer contains entities part of the public interface.</p></div></div></div></foreignObject><text x="1467" y="477" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Public Entities...</text></switch></g><path d="M 342 0 L 608 0 L 622 14 L 622 110 L 342 110 L 342 0 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 608 0 L 608 14 L 622 14" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 278px; height: 1px; padding-top: 1px; margin-left: 344px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Public classes / interfaces are colored blue,<br />internal classes / interfaces are colored orange.<br /><br />Only methods marked as public (+) are public interface. Methods marked as package (~) are public in the code, but meant for library-internal use only.</div></div></div></foreignObject><text x="344" y="13" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Public classes / interfaces are colored blue,...</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 182px; height: 1px; padding-top: 790px; margin-left: 1467px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 130px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><h1>Private Comms</h1><p>This layer contains internal classes that implement the low-level communication with the CardDAV server.</p></div></div></div></foreignObject><text x="1467" y="802" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Private Comms...</text></switch></g><path d="M 97 841.5 L 97 827.5 L 137 827.5 L 137 841.5 M 97 841.5 L 197 841.5 L 197 892.5 L 97 892.5 Z" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 865px; margin-left: 147px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; font-weight: bold; white-space: nowrap;">XmlElements</div></div></div></foreignObject><text x="147" y="869" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">XmlElements</text></switch></g><path d="M 102 594 L 102 580 L 142 580 L 142 594 M 102 594 L 202 594 L 202 645 L 102 645 Z" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 618px; margin-left: 152px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; font-weight: bold; white-space: nowrap;">Exception</div></div></div></foreignObject><text x="152" y="621" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Exception</text></switch></g><path d="M 47 466 L 47 440 L 257 440 L 257 466" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 47 466 L 47 510 L 257 510 L 257 466" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 47 466 L 257 466" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="151.5" y="457.5">Config</text></g><path d="M 47 470 L 257 470" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-51-479-202-26-0)" font-size="12px"><text x="52.5" y="491.5">+ init(logger, httplogger)</text></g><path d="M 282 50 L 282 1133.33" fill="none" stroke="#7d7d7d" stroke-width="5" stroke-miterlimit="10" stroke-dasharray="15 15" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 182px; height: 1px; padding-top: 133px; margin-left: 47px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left; max-height: 95px; overflow: hidden;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;"><h1>Infrastructure</h1><p>Cross-cutting infrastructure and support classes.</p></div></div></div></foreignObject><text x="47" y="145" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Infrastructure...</text></switch></g><path d="M 947 1036 L 947 1010 L 1107 1010 L 1107 1036" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><path d="M 947 1036 L 947 1044 L 1107 1044 L 1107 1036" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><path d="M 947 1036 L 1107 1036" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="1026.5" y="1027.5">HttpClientAdapterGuzzle</text></g><path d="M 947 1040 L 1107 1040" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 302 456 L 302 430 L 622 430 L 622 456" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 302 456 L 302 672 L 622 672 L 622 456" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 302 456 L 622 456" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="461.5" y="447.5">Account</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-306-461-312-26-0)" font-size="12px"><text x="307.5" y="473.5">- httpOptions: array{username, password, verify, ...}</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-306-487-312-26-0)" font-size="12px"><text x="307.5" y="499.5">- discoveryUri: string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-306-513-312-26-0)" font-size="12px"><text x="307.5" y="525.5">- baseUrl: string</text></g><path d="M 302 538 L 622 538" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-306-547-312-26-0)" font-size="12px"><text x="307.5" y="559.5">+ getDiscoveryUri(): string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-306-573-312-26-0)" font-size="12px"><text x="307.5" y="585.5">+ getUrl(): string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-306-599-312-26-0)" font-size="12px"><text x="307.5" y="611.5">~ getClient(baseUrl): CardDavClient</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-306-625-312-26-0)" font-size="12px"><text x="307.5" y="637.5">~ findCurrentUserPrincipal(contextPathUri): ?string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-306-651-312-26-0)" font-size="12px"><text x="307.5" y="663.5">~ findAddressbookHomes(principalUri): null | string[]</text></g><path d="M 992 564 L 974.12 564" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 963.12 564 L 974.12 558.5 L 974.12 569.5 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><path d="M 1182 203 L 1182 177 L 1452 177 L 1452 203" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 1182 203 L 1182 245 L 1452 245 L 1452 203" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 1182 203 L 1452 203" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-style="italic" pointer-events="none" text-anchor="middle" font-size="12px"><text x="1316.5" y="194.5">Sync</text></g><path d="M 1182 207 L 1452 207" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1186-216-262-26-0)" font-size="12px"><text x="1187.5" y="228.5">+ synchronize(abook, ..., prevSyncToken): string</text></g><path d="M 842 40 L 842 0 L 1102 0 L 1102 40" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 842 40 L 842 150 L 1102 150 L 1102 40" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 842 40 L 1102 40" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-style="italic" pointer-events="none" text-anchor="middle" font-size="12px"><text x="971.5" y="17.5">«interface»</text><text x="971.5" y="31.5">SyncHandler</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-846-45-252-26-0)" font-size="12px"><text x="847.5" y="57.5">+ addressObjectChanged(uri, etag, card): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-846-71-252-26-0)" font-size="12px"><text x="847.5" y="83.5">+ addressObjectDeleted(uri): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-846-97-252-26-0)" font-size="12px"><text x="847.5" y="109.5">+ getExistingVCardETags(): string[]</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-846-123-252-26-0)" font-size="12px"><text x="847.5" y="135.5">+ finalizeSync(): void</text></g><path d="M 842 186 L 842 160 L 1102 160 L 1102 186" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><path d="M 842 186 L 842 324 L 1102 324 L 1102 186" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><path d="M 842 186 L 1102 186" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-style="italic" pointer-events="none" text-anchor="middle" font-size="12px"><text x="971.5" y="177.5">SyncResult</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-846-191-252-26-0)" font-size="12px"><text x="847.5" y="203.5">~ syncToken: string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-846-217-252-26-0)" font-size="12px"><text x="847.5" y="229.5">~ syncAgain: bool</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-846-243-252-26-0)" font-size="12px"><text x="847.5" y="255.5">~ deletedObjects: string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-846-269-252-26-0)" font-size="12px"><text x="847.5" y="281.5">~ changedObjects: array</text></g><path d="M 842 294 L 1102 294" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-846-303-252-26-0)" font-size="12px"><text x="847.5" y="315.5">~ createVCards(): bool</text></g><path d="M 492 286 L 492 260 L 702 260 L 702 286" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 492 286 L 492 330 L 702 330 L 702 286" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 492 286 L 702 286" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="596.5" y="277.5">Discovery</text></g><path d="M 492 290 L 702 290" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-496-299-202-26-0)" font-size="12px"><text x="497.5" y="311.5">+ discoverAddressbooks(account)</text></g><path d="M 662 456 L 662 430 L 962 430 L 962 456" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 662 456 L 662 724 L 962 724 L 962 456" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 662 456 L 962 456" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="811.5" y="447.5">WebDavResource</text></g><path d="M 662 460 L 962 460" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-decoration="underline" pointer-events="none" clip-path="url(#mx-clip-666-469-292-26-0)" font-size="12px"><text x="667.5" y="481.5">+ createInstance(uri, account, restype): WebDavResource</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-666-495-292-26-0)" font-size="12px"><text x="667.5" y="507.5">+ refreshProperties(): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-666-521-292-26-0)" font-size="12px"><text x="667.5" y="533.5">+ getAccount(): Account</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-666-547-292-26-0)" font-size="12px"><text x="667.5" y="559.5">+ getUri(): string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-666-573-292-26-0)" font-size="12px"><text x="667.5" y="585.5">+ getUriPath(): string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-666-599-292-26-0)" font-size="12px"><text x="667.5" y="611.5">+ getBasename(): string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-666-625-292-26-0)" font-size="12px"><text x="667.5" y="637.5">+ getSyncToken(): ?string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-666-651-292-26-0)" font-size="12px"><text x="667.5" y="663.5">+ downloadResource(uri): array</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-666-677-292-26-0)" font-size="12px"><text x="667.5" y="689.5">~ getClient(): CardDavClient</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-666-703-292-26-0)" font-size="12px"><text x="667.5" y="715.5"># getProperties(): array</text></g><path d="M 1232 456 L 1232 430 L 1502 430 L 1502 456" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 1232 456 L 1232 724 L 1502 724 L 1502 456" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 1232 456 L 1502 456" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="1366.5" y="447.5">AddressbookCollection</text></g><path d="M 1232 460 L 1502 460" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1236-469-262-26-0)" font-size="12px"><text x="1237.5" y="481.5">+ getName(): string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1236-495-262-26-0)" font-size="12px"><text x="1237.5" y="507.5">+ getDetails(): string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1236-521-262-26-0)" font-size="12px"><text x="1237.5" y="533.5">+ supportsMultiGet(): bool</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1236-547-262-26-0)" font-size="12px"><text x="1237.5" y="559.5">+ getCTag(): ?string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1236-573-262-26-0)" font-size="12px"><text x="1237.5" y="585.5">+ getCard(uri): array</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1236-599-262-26-0)" font-size="12px"><text x="1237.5" y="611.5">+ deleteCard(uri): void</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1236-625-262-26-0)" font-size="12px"><text x="1237.5" y="637.5">+ createCard(vcard): array</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1236-651-262-26-0)" font-size="12px"><text x="1237.5" y="663.5">+ updateCard(uri, vcard, etag): ?string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1236-677-262-26-0)" font-size="12px"><text x="1237.5" y="689.5">+ query(conditions, props, matchAll, limit): array</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-1236-703-262-26-0)" font-size="12px"><text x="1237.5" y="715.5"># validateCard(vcard): void</text></g><path d="M 992 520 L 992 494 L 1202 494 L 1202 520" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 992 520 L 992 634 L 1202 634 L 1202 520" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><path d="M 992 520 L 1202 520" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" text-anchor="middle" font-size="12px"><text x="1096.5" y="511.5">WebDavCollection</text></g><path d="M 992 524 L 1202 524" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="none"/><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-996-533-202-26-0)" font-size="12px"><text x="997.5" y="545.5">+ getChildren(): WebDavResource[]</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-996-559-202-26-0)" font-size="12px"><text x="997.5" y="571.5">+ getSyncToken(): ?string</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-996-585-202-26-0)" font-size="12px"><text x="997.5" y="597.5">+ supportsSyncCollection(): bool</text></g><g fill="rgb(0, 0, 0)" font-family="Helvetica" pointer-events="none" clip-path="url(#mx-clip-996-611-202-26-0)" font-size="12px"><text x="997.5" y="623.5"># supportsReport(reportElem): bool</text></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
Save