Files
2024-08-31 12:07:21 +03:00

1141 lines
137 KiB
Plaintext

<mxfile host="app.diagrams.net" modified="2024-04-07T16:54:18.863Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36" etag="WgOuk4y3iet1wO7WWfHE" version="24.2.2" type="device">
<diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">
<mxGraphModel dx="2631" dy="1784" 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--0" value="User" 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;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="1470" y="70" width="160" height="164" as="geometry">
<mxRectangle x="230" y="140" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--1" value="-id: guid" 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="26" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="290E1qMAe_ffJs9mF416-0" value="-birthday: DateTime" 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--0" vertex="1">
<mxGeometry y="52" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="290E1qMAe_ffJs9mF416-2" value="-phoneNumber: 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--0" vertex="1">
<mxGeometry y="78" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="290E1qMAe_ffJs9mF416-1" value="-email: 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--0" vertex="1">
<mxGeometry y="104" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--2" value="-username: 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--0" vertex="1">
<mxGeometry y="130" width="160" height="26" as="geometry" />
</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="156" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--6" value="ExtraInfo&#xa;" 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;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="590" y="882" width="280" height="138" as="geometry">
<mxRectangle x="130" y="380" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--7" value="-postsService: PostsService" 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="280" height="26" as="geometry" />
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--8" value="-statisticsService: StatisticsService" 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="280" height="26" as="geometry" />
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--11" value="-profileNetworkService:ProfileNetworkInfoService" 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="78" width="280" 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="280" height="8" as="geometry" />
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--13" value="ProfileNetworkInfoRepo" 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;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="1440" y="391" width="250" height="439" 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="250" height="8" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-27" value="+getBlockedAccounts()&lt;span style=&quot;color: rgba(0, 0, 0, 0); font-family: monospace; font-size: 0px; text-wrap: nowrap;&quot;&gt;%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22%2BquickSortAscending()%22%20style%3D%22text%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22990%22%20y%3D%22751%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%223%22%20value%3D%22%2BquickSortDescending%22%20style%3D%22text%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22990%22%20y%3D%22777%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%224%22%20value%3D%22%2BmergeSortAscending%22%20style%3D%22text%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22990%22%20y%3D%22803%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%225%22%20value%3D%22%2BmergeSortDescending%22%20style%3D%22text%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22990%22%20y%3D%22829%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E&lt;/span&gt;" 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--13" vertex="1">
<mxGeometry y="34" width="250" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-28" value="+getCloseFriends()&lt;span style=&quot;color: rgba(0, 0, 0, 0); font-family: monospace; font-size: 0px; text-wrap: nowrap;&quot;&gt;%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22%2BquickSortAscending()%22%20style%3D%22text%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22990%22%20y%3D%22751%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%223%22%20value%3D%22%2BquickSortDescending%22%20style%3D%22text%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22990%22%20y%3D%22777%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%224%22%20value%3D%22%2BmergeSortAscending%22%20style%3D%22text%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22990%22%20y%3D%22803%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%225%22%20value%3D%22%2BmergeSortDescending%22%20style%3D%22text%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22990%22%20y%3D%22829%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E&lt;/span&gt;" 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--13" vertex="1">
<mxGeometry y="60" width="250" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-29" value="+getGroups()&lt;span style=&quot;color: rgba(0, 0, 0, 0); font-family: monospace; font-size: 0px; text-wrap: nowrap;&quot;&gt;%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22%2BquickSortAscending()%22%20style%3D%22text%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22990%22%20y%3D%22751%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%223%22%20value%3D%22%2BquickSortDescending%22%20style%3D%22text%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22990%22%20y%3D%22777%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%224%22%20value%3D%22%2BmergeSortAscending%22%20style%3D%22text%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22990%22%20y%3D%22803%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%225%22%20value%3D%22%2BmergeSortDescending%22%20style%3D%22text%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22990%22%20y%3D%22829%22%20width%3D%22200%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E&lt;/span&gt;" 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--13" vertex="1">
<mxGeometry y="86" width="250" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-41" value="+addBlockedAccount(accountToAdd: BlockedAccount): 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--13" vertex="1">
<mxGeometry y="112" width="250" height="38" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-42" value="+addCloseFriend(accountToAdd: CloseFriend): 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--13" vertex="1">
<mxGeometry y="150" width="250" height="40" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-43" value="+removeCloseFriend(accountToRemove: CloseFriend): 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--13" vertex="1">
<mxGeometry y="190" width="250" height="40" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-44" value="+removeBlockedAccount(accountToRemove: BlockedAccount): 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--13" vertex="1">
<mxGeometry y="230" width="250" height="38" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-47" value="+addGroup(groupToAdd: Group): 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--13" vertex="1">
<mxGeometry y="268" width="250" height="32" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-45" value="+removeGroup(groupToRemove: Group): 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--13" vertex="1">
<mxGeometry y="300" width="250" height="38" as="geometry" />
</mxCell>
<mxCell id="290E1qMAe_ffJs9mF416-3" value="+createGroup(name:string): 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--13" vertex="1">
<mxGeometry y="338" width="250" height="32" as="geometry" />
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--17" value="CasualProfileService" 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;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="230" y="328" width="350" height="372" as="geometry">
<mxRectangle x="550" y="140" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-46" value="-connectedUser: User" 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--17" vertex="1">
<mxGeometry y="26" width="350" height="26" as="geometry" />
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-35" value="-friendsStuff: FriendsStuff" 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--17" vertex="1">
<mxGeometry y="52" width="350" height="26" as="geometry" />
</mxCell>
<mxCell id="7Z-h_UDIuQHWzcK5ADaV-10" value="-profilePhoto: FIle" 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--17" vertex="1">
<mxGeometry y="78" width="350" height="26" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-1" value="-extraInfo: ExtraInfo" 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--17" vertex="1">
<mxGeometry y="104" width="350" height="26" as="geometry" />
</mxCell>
<mxCell id="7Z-h_UDIuQHWzcK5ADaV-11" value="-following: List&amp;lt;User&amp;gt;" 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--17" vertex="1">
<mxGeometry y="130" width="350" height="26" as="geometry" />
</mxCell>
<mxCell id="7Z-h_UDIuQHWzcK5ADaV-12" value="-followers: List&amp;lt;User&amp;gt;" 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--17" vertex="1">
<mxGeometry y="156" width="350" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-131" value="-snapshotsService: SnapshotsService" 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--17" vertex="1">
<mxGeometry y="182" width="350" height="26" as="geometry" />
</mxCell>
<mxCell id="czLum5bH_eBL0qxSt12o-0" value="-profileInfoSettings:ProfileInfoSettings" 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--17" vertex="1">
<mxGeometry y="208" width="350" height="26" as="geometry" />
</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="234" width="350" height="8" as="geometry" />
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-47" value="+getConnectedUserPosts(connectedUser:User):MockPost" 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--17" vertex="1">
<mxGeometry y="242" width="350" height="26" as="geometry" />
</mxCell>
<mxCell id="7Z-h_UDIuQHWzcK5ADaV-13" value="+addFollowerUser(userToAdd: User): 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--17" vertex="1">
<mxGeometry y="268" width="350" height="26" as="geometry" />
</mxCell>
<mxCell id="7Z-h_UDIuQHWzcK5ADaV-15" value="+addFollowingUser(userToAdd: User): 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--17" vertex="1">
<mxGeometry y="294" width="350" height="26" as="geometry" />
</mxCell>
<mxCell id="7Z-h_UDIuQHWzcK5ADaV-14" value="+removeFollowerUser(userToAdd: User): 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--17" vertex="1">
<mxGeometry y="320" width="350" height="26" as="geometry" />
</mxCell>
<mxCell id="7Z-h_UDIuQHWzcK5ADaV-16" value="+removeFollowingUser(userToAdd: User): 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;whiteSpace=wrap;html=1;" parent="zkfFHV4jXpPFQw0GAbJ--17" vertex="1">
<mxGeometry y="346" width="350" height="26" as="geometry" />
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--26" value="" style="endArrow=open;shadow=0;strokeWidth=1;rounded=0;curved=0;endFill=1;edgeStyle=elbowEdgeStyle;elbow=vertical;exitX=0.554;exitY=-0.021;exitDx=0;exitDy=0;exitPerimeter=0;entryX=-0.021;entryY=0.093;entryDx=0;entryDy=0;entryPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="zkfFHV4jXpPFQw0GAbJ--17" target="zkfFHV4jXpPFQw0GAbJ--0" edge="1">
<mxGeometry x="0.5" y="41" relative="1" as="geometry">
<mxPoint x="380" y="192" as="sourcePoint" />
<mxPoint x="950" y="100" as="targetPoint" />
<mxPoint x="-40" y="32" as="offset" />
<Array as="points">
<mxPoint x="529" y="280" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--27" value="1" style="resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="zkfFHV4jXpPFQw0GAbJ--26" connectable="0" vertex="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="zkfFHV4jXpPFQw0GAbJ--28" value="1" style="resizable=0;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="zkfFHV4jXpPFQw0GAbJ--26" connectable="0" vertex="1">
<mxGeometry x="1" relative="1" as="geometry">
<mxPoint x="-7" y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-7" value="ProfileInfoSettings" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="-520" y="-134" width="280" height="724" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-16" value="-profileId: guid" 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="26" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-0" value="-username: 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="52" width="280" height="18" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-1" value="-password: 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="70" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-17" value="-birthday: DateTime" 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="96" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-26" value="-email: 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="122" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-25" value="-phoneNumber: 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="148" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-8" value="-profileDescription: 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="174" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-10" value="-dailyMotto: 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="200" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-9" value="-links: 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="226" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-18" value="-hobbies: 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="252" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-4" value="-hideNumberOfLikes: 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="278" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="QVfi3se21Ql85yWSjc6v-6" value="-isVerified: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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="304" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="QVfi3se21Ql85yWSjc6v-8" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="330" width="280" height="8" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-13" value="+removeLink(linkToRemove:string):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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="338" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-19" value="+addEducation(newEducation: Education):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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="364" width="280" height="32" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-20" value="+addHobby(newHobby: string):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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="396" width="280" height="20" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-24" value="+removeEducation(educationToRemove: Education):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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="416" width="280" height="42" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-23" value="+removeHobby(hobbyToRemove: string):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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="458" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-22" value="+removeWorkExperience(experienceToRemove: WorkExperience):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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="484" width="280" height="42" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-21" value="+addWorkExperience(newExperience: WorkExperience):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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="526" width="280" height="42" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-12" value="+updateLink(link:string, newLink: string):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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="568" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-11" value="+addLink(newLink:string):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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="594" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-5" value="+verifyAccount():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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="620" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-7" value="+changeUsername():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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="646" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="RpgjhCyierjXjDvT_ClI-6" value="+changePassword():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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="672" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-271" value="+verifyAccount():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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-7" vertex="1">
<mxGeometry y="698" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-14" value="" style="endArrow=open;shadow=0;strokeWidth=1;rounded=0;curved=0;endFill=1;edgeStyle=elbowEdgeStyle;elbow=vertical;exitX=-0.005;exitY=0.893;exitDx=0;exitDy=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="czLum5bH_eBL0qxSt12o-0" edge="1">
<mxGeometry x="0.5" y="41" relative="1" as="geometry">
<mxPoint x="230" y="419" as="sourcePoint" />
<mxPoint x="-240" y="560" as="targetPoint" />
<mxPoint x="-40" y="32" as="offset" />
<Array as="points">
<mxPoint x="-10" y="559" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-16" value="1" style="resizable=0;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="QegDPVJf7pusOnz6bvU5-14" connectable="0" vertex="1">
<mxGeometry x="1" relative="1" as="geometry">
<mxPoint x="-7" y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-22" value="" style="endArrow=open;shadow=0;strokeWidth=1;rounded=0;curved=0;endFill=1;edgeStyle=elbowEdgeStyle;elbow=vertical;exitX=1;exitY=0.324;exitDx=0;exitDy=0;entryX=0.811;entryY=0.006;entryDx=0;entryDy=0;entryPerimeter=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="QegDPVJf7pusOnz6bvU5-1" target="zkfFHV4jXpPFQw0GAbJ--6" edge="1">
<mxGeometry x="0.5" y="41" relative="1" as="geometry">
<mxPoint x="670" y="176" as="sourcePoint" />
<mxPoint x="971" y="181" as="targetPoint" />
<mxPoint x="-40" y="32" as="offset" />
<Array as="points">
<mxPoint x="680" y="560" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-23" value="1" style="resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="QegDPVJf7pusOnz6bvU5-22" connectable="0" vertex="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-24" value="1" style="resizable=0;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="QegDPVJf7pusOnz6bvU5-22" connectable="0" vertex="1">
<mxGeometry x="1" relative="1" as="geometry">
<mxPoint x="-7" y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-49" value="SortingModule" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="1060" y="1020" width="470" height="190" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-71" value="-L&lt;span style=&quot;font-size: 13px; text-align: center; background-color: rgb(255, 255, 255);&quot;&gt;ist&amp;lt;T&amp;gt; templateList&lt;/span&gt;" 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-49" vertex="1">
<mxGeometry y="26" width="470" height="26" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-51" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="QegDPVJf7pusOnz6bvU5-49" vertex="1">
<mxGeometry y="52" width="470" height="8" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-72" value="+getTemplateList() : List&amp;lt;T&amp;gt;" 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-49" vertex="1">
<mxGeometry y="60" width="470" height="26" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-52" value="+quickSortAscending(templateList: List&amp;lt;T&amp;gt;, comparer:FuncTToInt) :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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-49" vertex="1">
<mxGeometry y="86" width="470" height="26" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-68" value="+quickSortDescending(templateList: List&amp;lt;T&amp;gt;, comparer: FuncTToInt) :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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-49" vertex="1">
<mxGeometry y="112" width="470" height="26" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-69" value="+mergeSortAscending(templateList: List&amp;lt;T&amp;gt;, comparer: FuncTToInt) :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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-49" vertex="1">
<mxGeometry y="138" width="470" height="26" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-70" value="+mergeSortDescending(templateList: List&amp;lt;T&amp;gt;, comparer: FuncTToInt) :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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-49" vertex="1">
<mxGeometry y="164" width="470" height="26" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-45" value="StatisticsService&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="710" y="1270" width="230" height="138" as="geometry" />
</mxCell>
<mxCell id="QVfi3se21Ql85yWSjc6v-13" value="-timeSpentOnApp: int" 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-45" vertex="1">
<mxGeometry y="26" width="230" height="26" as="geometry" />
</mxCell>
<mxCell id="QVfi3se21Ql85yWSjc6v-15" value="-friend: User" 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-45" vertex="1">
<mxGeometry y="52" width="230" height="26" as="geometry" />
</mxCell>
<mxCell id="QVfi3se21Ql85yWSjc6v-14" value="-streakNumber: int" 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-45" vertex="1">
<mxGeometry y="78" width="230" height="26" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-47" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="QegDPVJf7pusOnz6bvU5-45" vertex="1">
<mxGeometry y="104" width="230" height="8" as="geometry" />
</mxCell>
<mxCell id="QVfi3se21Ql85yWSjc6v-16" value="+seeAverageTimeSpent(period:string):DateTime" 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-45" vertex="1">
<mxGeometry y="112" width="230" height="26" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-77" value="BlockedAccount" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="1890" y="240" width="300" height="160" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-78" value="-blockedUser: User" 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-77" vertex="1">
<mxGeometry y="26" width="300" height="26" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-105" value="-currentUser: User" 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-77" vertex="1">
<mxGeometry y="52" width="300" height="26" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-109" value="-blockDate: DateTime" 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-77" vertex="1">
<mxGeometry y="78" width="300" height="26" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-79" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="QegDPVJf7pusOnz6bvU5-77" vertex="1">
<mxGeometry y="104" width="300" height="8" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-80" value="+compareTo(accountToCompareTo: User): int" 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-77" vertex="1">
<mxGeometry y="112" width="300" height="48" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-81" value="CloseFriend" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="1890" y="490" width="290" height="166" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-82" value="-closeFriend: User" 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-81" vertex="1">
<mxGeometry y="26" width="290" height="26" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-118" value="-currentUser: User" 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-81" vertex="1">
<mxGeometry y="52" width="290" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-0" value="-closeFriendDate: DateTime" 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-81" vertex="1">
<mxGeometry y="78" width="290" height="26" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-83" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="QegDPVJf7pusOnz6bvU5-81" vertex="1">
<mxGeometry y="104" width="290" height="8" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-84" value="+compareTo( accountToCompareTo: User): int" 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-81" vertex="1">
<mxGeometry y="112" width="290" height="54" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-85" value="Group" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="1860" y="730" width="290" height="160" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-86" value="-groupId: guid" 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-85" vertex="1">
<mxGeometry y="26" width="290" height="26" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-122" value="-groupName: 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-85" vertex="1">
<mxGeometry y="52" width="290" height="26" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-123" value="-members: List&amp;lt;User&amp;gt;" 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-85" vertex="1">
<mxGeometry y="78" width="290" height="26" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-87" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="QegDPVJf7pusOnz6bvU5-85" vertex="1">
<mxGeometry y="104" width="290" height="8" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-88" value="+compareTo( groupToCompareTo: Group): int" 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;whiteSpace=wrap;html=1;" parent="QegDPVJf7pusOnz6bvU5-85" vertex="1">
<mxGeometry y="112" width="290" height="48" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-93" value="" style="endArrow=open;shadow=0;strokeWidth=1;rounded=0;curved=0;endFill=1;edgeStyle=elbowEdgeStyle;elbow=vertical;exitX=1.02;exitY=0.199;exitDx=0;exitDy=0;entryX=0.002;entryY=0.174;entryDx=0;entryDy=0;entryPerimeter=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" target="QegDPVJf7pusOnz6bvU5-77" edge="1">
<mxGeometry x="0.5" y="41" relative="1" as="geometry">
<mxPoint x="1695" y="422.174" as="sourcePoint" />
<mxPoint x="1283" y="299" as="targetPoint" />
<mxPoint x="-40" y="32" as="offset" />
<Array as="points">
<mxPoint x="1870" y="268" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-94" value="1" style="resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="QegDPVJf7pusOnz6bvU5-93" connectable="0" vertex="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-95" value="0....*" style="resizable=0;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="QegDPVJf7pusOnz6bvU5-93" connectable="0" vertex="1">
<mxGeometry x="1" relative="1" as="geometry">
<mxPoint x="-7" y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-106" value="" style="endArrow=open;shadow=0;strokeWidth=1;rounded=0;curved=0;endFill=1;edgeStyle=elbowEdgeStyle;elbow=vertical;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="zkfFHV4jXpPFQw0GAbJ--0" target="QegDPVJf7pusOnz6bvU5-105" edge="1">
<mxGeometry x="0.5" y="41" relative="1" as="geometry">
<mxPoint x="1240" y="130" as="sourcePoint" />
<mxPoint x="1860" y="320" as="targetPoint" />
<mxPoint x="-40" y="32" as="offset" />
<Array as="points">
<mxPoint x="1720" y="300" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-107" value="1" style="resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="QegDPVJf7pusOnz6bvU5-106" connectable="0" vertex="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-108" value="1" style="resizable=0;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="QegDPVJf7pusOnz6bvU5-106" connectable="0" vertex="1">
<mxGeometry x="1" relative="1" as="geometry">
<mxPoint x="-7" y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-114" value="«interface»&lt;br&gt;&lt;b&gt;IComparable&lt;/b&gt;" style="html=1;whiteSpace=wrap;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="2371" y="585.5" width="110" height="50" as="geometry" />
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-117" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="QegDPVJf7pusOnz6bvU5-109" target="QegDPVJf7pusOnz6bvU5-114" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="1550" y="400" as="sourcePoint" />
<mxPoint x="1700" y="360" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-119" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="QegDPVJf7pusOnz6bvU5-84" target="QegDPVJf7pusOnz6bvU5-114" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="1650" y="553" as="sourcePoint" />
<mxPoint x="1750" y="500" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="QegDPVJf7pusOnz6bvU5-121" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="QegDPVJf7pusOnz6bvU5-88" target="QegDPVJf7pusOnz6bvU5-114" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="1650" y="401" as="sourcePoint" />
<mxPoint x="1740" y="388" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-1" value="«interface»&lt;br&gt;&lt;b&gt;FuncTToInt&lt;/b&gt;&lt;div&gt;+Invoke(argument1: T, argument2: T) :int&lt;/div&gt;" style="html=1;whiteSpace=wrap;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="980" y="926" width="220" height="50" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-3" value="ProfileNetworkInfoService" 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;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="1030" y="368" width="290" height="410" as="geometry">
<mxRectangle x="340" y="380" width="170" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-4" value="-profileNetworkRepo: ProfileNetworkInfoRepo" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="3yT8356qW33JT61PNnHo-3" vertex="1">
<mxGeometry y="26" width="290" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-33" value="&lt;div&gt;- compareBlockedProfilesByDate: Func&amp;lt;BlockedProfile, BlockedProfile, int&amp;gt;&lt;/div&gt;" 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-3" vertex="1">
<mxGeometry y="52" width="290" height="42" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-34" value="- compareCloseFriendsByUsername: Func&amp;lt;CloseFriendProfile, CloseFriendProfile, int&amp;gt;" 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-3" vertex="1">
<mxGeometry y="94" width="290" height="50" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-35" value="- compareGroupsByName: Func&amp;lt;Group, Group, int&amp;gt;" 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-3" vertex="1">
<mxGeometry y="144" width="290" height="40" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-36" value="&amp;nbsp; - compareLikedPostbyDate: Func&amp;lt;LikedPost, LikedPost, int&amp;gt;" 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-3" vertex="1">
<mxGeometry y="184" width="290" height="46" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-8" 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="3yT8356qW33JT61PNnHo-3" vertex="1">
<mxGeometry y="230" width="290" height="8" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-40" value="+ CompareLikedPostsByDate(): Func&amp;lt;LikedPost, LikedPost, int&amp;gt;" 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-3" vertex="1">
<mxGeometry y="238" width="290" height="42" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-37" value="&amp;nbsp;+ CompareBlockedProfilesByDate(): Func&amp;lt;BlockedProfile, BlockedProfile, int&amp;gt;" 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-3" vertex="1">
<mxGeometry y="280" width="290" height="40" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-39" value="+ CompareGroupsByName(): Func&amp;lt;Group, Group, int&amp;gt;" 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-3" vertex="1">
<mxGeometry y="320" width="290" height="40" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-38" value="&amp;nbsp;+ CompareCloseFriendsByUsername(): Func&amp;lt;CloseFriendProfile, CloseFriendProfile, int&amp;gt;" 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-3" vertex="1">
<mxGeometry y="360" width="290" height="50" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-69" value="PostsRepository" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="90" y="1670" width="285" height="112" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-70" value="-likedPosts: MockPost" 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-69" vertex="1">
<mxGeometry y="26" width="285" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-71" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="3yT8356qW33JT61PNnHo-69" vertex="1">
<mxGeometry y="52" width="285" height="8" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-72" value="+addLikedPost(postToAdd:MockPost):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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-69" vertex="1">
<mxGeometry y="60" width="285" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-99" value="+removeLikedPost(postToRemove:MockPost):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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-69" vertex="1">
<mxGeometry y="86" width="285" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-74" value="MockVideoPost" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="80" y="2110" width="190" height="86" as="geometry" />
</mxCell>
<mxCell id="QVfi3se21Ql85yWSjc6v-4" value="-description: 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-74" vertex="1">
<mxGeometry y="26" width="190" height="26" as="geometry" />
</mxCell>
<mxCell id="QVfi3se21Ql85yWSjc6v-0" value="-video: File" 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-74" vertex="1">
<mxGeometry y="52" width="190" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-77" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="3yT8356qW33JT61PNnHo-74" vertex="1">
<mxGeometry y="78" width="190" height="8" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-81" value="MockPhotoPost" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="760" y="2110" width="190" height="86" as="geometry" />
</mxCell>
<mxCell id="QVfi3se21Ql85yWSjc6v-3" value="-description: 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-81" vertex="1">
<mxGeometry y="26" width="190" height="26" as="geometry" />
</mxCell>
<mxCell id="QVfi3se21Ql85yWSjc6v-2" value="-photo: File" 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-81" vertex="1">
<mxGeometry y="52" width="190" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-83" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="3yT8356qW33JT61PNnHo-81" vertex="1">
<mxGeometry y="78" width="190" height="8" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-84" value="MockPost" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="420" y="1840" width="240" height="164" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-85" value="-postId: guid" 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-84" vertex="1">
<mxGeometry y="26" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-87" value="-owner: User" 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-84" vertex="1">
<mxGeometry y="52" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="7Z-h_UDIuQHWzcK5ADaV-2" value="-reactions: Dictionary&amp;lt;int, List&amp;lt;User&amp;gt;" 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-84" vertex="1">
<mxGeometry y="78" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="7Z-h_UDIuQHWzcK5ADaV-0" value="-mentionedUsers: List&amp;lt;User&amp;gt;" 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-84" vertex="1">
<mxGeometry y="104" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-88" value="-title: 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-84" vertex="1">
<mxGeometry y="130" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-86" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="3yT8356qW33JT61PNnHo-84" vertex="1">
<mxGeometry y="156" width="240" height="8" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-94" value="Extends" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;exitX=0.488;exitY=-0.109;exitDx=0;exitDy=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="3yT8356qW33JT61PNnHo-81" target="3yT8356qW33JT61PNnHo-84" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="235" y="1169" as="sourcePoint" />
<mxPoint x="395" y="1169" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-95" value="Extends" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;exitX=0.737;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="3yT8356qW33JT61PNnHo-74" target="3yT8356qW33JT61PNnHo-84" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="295" y="1196" as="sourcePoint" />
<mxPoint x="240" y="1142" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-96" value="" style="endArrow=open;shadow=0;strokeWidth=1;rounded=0;curved=0;endFill=1;edgeStyle=elbowEdgeStyle;elbow=vertical;exitX=1.004;exitY=0.095;exitDx=0;exitDy=0;entryX=1.004;entryY=0.154;entryDx=0;entryDy=0;entryPerimeter=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="3yT8356qW33JT61PNnHo-69" target="3yT8356qW33JT61PNnHo-84" edge="1">
<mxGeometry x="0.5" y="41" relative="1" as="geometry">
<mxPoint x="-20" y="970" as="sourcePoint" />
<mxPoint x="157" y="1042" as="targetPoint" />
<mxPoint x="-40" y="32" as="offset" />
<Array as="points">
<mxPoint x="560" y="1608" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-97" value="1" style="resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="3yT8356qW33JT61PNnHo-96" connectable="0" vertex="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-98" value="0....*" style="resizable=0;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="3yT8356qW33JT61PNnHo-96" connectable="0" vertex="1">
<mxGeometry x="1" relative="1" as="geometry">
<mxPoint x="-7" y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-103" value="PostsService" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="300" y="1320" width="290" height="112" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-104" value="-postRepo: PostRepository" 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-103" vertex="1">
<mxGeometry y="26" width="290" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-106" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="3yT8356qW33JT61PNnHo-103" vertex="1">
<mxGeometry y="52" width="290" height="8" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-107" value="+addLikedPost(postToAdd:MockPost):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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-103" vertex="1">
<mxGeometry y="60" width="290" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-108" value="+removeLikedPost(postToRemove:MockPost):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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-103" vertex="1">
<mxGeometry y="86" width="290" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-132" value="SnapshotsService" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="80" y="762" width="305" height="112" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-133" value="-snapshotsRepo: SnapshotsRepository" 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-132" vertex="1">
<mxGeometry y="26" width="305" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-134" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="3yT8356qW33JT61PNnHo-132" vertex="1">
<mxGeometry y="52" width="305" height="8" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-135" value="+addLikedPost(postToAdd:MockPost):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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-132" vertex="1">
<mxGeometry y="60" width="305" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-136" value="+removeLikedPost(postToRemove:MockPost):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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-132" vertex="1">
<mxGeometry y="86" width="305" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-139" value="" style="endArrow=open;shadow=0;strokeWidth=1;rounded=0;curved=0;endFill=1;edgeStyle=elbowEdgeStyle;elbow=vertical;exitX=-0.006;exitY=0.79;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.15;entryY=-0.009;entryDx=0;entryDy=0;entryPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="3yT8356qW33JT61PNnHo-131" target="3yT8356qW33JT61PNnHo-132" edge="1">
<mxGeometry x="0.5" y="41" relative="1" as="geometry">
<mxPoint x="52.5" y="630" as="sourcePoint" />
<mxPoint x="12" y="540" as="targetPoint" />
<mxPoint x="-40" y="32" as="offset" />
<Array as="points">
<mxPoint x="200" y="520" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-140" value="1" style="resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="3yT8356qW33JT61PNnHo-139" connectable="0" vertex="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-141" value="1" style="resizable=0;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="3yT8356qW33JT61PNnHo-139" connectable="0" vertex="1">
<mxGeometry x="1" relative="1" as="geometry">
<mxPoint x="-7" y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-142" value="SnapshotsRepo" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="160" y="950" width="300" height="190" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-144" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="3yT8356qW33JT61PNnHo-142" vertex="1">
<mxGeometry y="26" width="300" height="8" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-145" value="+addHighlight(highlightToAdd:MockPost):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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-142" vertex="1">
<mxGeometry y="34" width="300" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-146" value="+removeHighlight(highlightToRemove:MockPost):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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-142" vertex="1">
<mxGeometry y="60" width="300" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-147" value="+addReel(reelToAdd:Reel):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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-142" vertex="1">
<mxGeometry y="86" width="300" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-148" value="+removeReel(reelToRemove:Reel):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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-142" vertex="1">
<mxGeometry y="112" width="300" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-155" value="+addPost(postToAdd:MockPost):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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-142" vertex="1">
<mxGeometry y="138" width="300" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-156" value="+removePost(postToRemove:MockPost):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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-142" vertex="1">
<mxGeometry y="164" width="300" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-160" value="" style="endArrow=open;shadow=0;strokeWidth=1;rounded=0;curved=0;endFill=1;edgeStyle=elbowEdgeStyle;elbow=vertical;exitX=-0.005;exitY=0.203;exitDx=0;exitDy=0;entryX=0.021;entryY=0.089;entryDx=0;entryDy=0;entryPerimeter=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" target="3yT8356qW33JT61PNnHo-84" edge="1">
<mxGeometry x="0.5" y="41" relative="1" as="geometry">
<mxPoint x="158.5" y="1059.2779999999998" as="sourcePoint" />
<mxPoint x="-730" y="1109" as="targetPoint" />
<mxPoint x="-40" y="32" as="offset" />
<Array as="points">
<mxPoint x="-150" y="1520" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-161" value="1" style="resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="3yT8356qW33JT61PNnHo-160" connectable="0" vertex="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-162" value="0....*" style="resizable=0;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="3yT8356qW33JT61PNnHo-160" connectable="0" vertex="1">
<mxGeometry x="1" relative="1" as="geometry">
<mxPoint x="-7" y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-200" value="Education" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="-1010" y="-134" width="160" height="164" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-201" value="-educationLevel: 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-200" vertex="1">
<mxGeometry y="26" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="QVfi3se21Ql85yWSjc6v-17" value="-institutionName: 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-200" vertex="1">
<mxGeometry y="52" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-204" value="-startDate: DateTime" 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-200" vertex="1">
<mxGeometry y="78" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-205" value="-endDate: DateTime" 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-200" vertex="1">
<mxGeometry y="104" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-206" value="-location: 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-200" vertex="1">
<mxGeometry y="130" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-202" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="3yT8356qW33JT61PNnHo-200" vertex="1">
<mxGeometry y="156" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-216" value="WorkExperience" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="-1000" y="185" width="160" height="190" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-217" value="-postion: 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-216" vertex="1">
<mxGeometry y="26" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="QVfi3se21Ql85yWSjc6v-18" value="-workplace: 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-216" vertex="1">
<mxGeometry y="52" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-218" value="-startDate: DateTime" 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-216" vertex="1">
<mxGeometry y="78" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-219" value="-endDate: DateTime" 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-216" vertex="1">
<mxGeometry y="104" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-220" value="-description: 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-216" vertex="1">
<mxGeometry y="130" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-222" value="-location: 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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-216" vertex="1">
<mxGeometry y="156" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-221" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="3yT8356qW33JT61PNnHo-216" vertex="1">
<mxGeometry y="182" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-234" value="ValidationModule" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="-1390" y="-420" width="260" height="188" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-238" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="3yT8356qW33JT61PNnHo-234" vertex="1">
<mxGeometry y="26" width="260" height="8" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-235" value="+isValidEmail(email:string, pattern:string):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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-234" vertex="1">
<mxGeometry y="34" width="260" height="30" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-236" value="-isValidPhoneNumber(phoneNumber:string, pattern:string):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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-234" vertex="1">
<mxGeometry y="64" width="260" height="46" as="geometry" />
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-0" value="+isValidDate(date:string, pattern:string):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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-234" vertex="1">
<mxGeometry y="110" width="260" height="34" as="geometry" />
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-1" value="+sanitizeSqlInput(input:string, sanitizeInput:string):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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-234" vertex="1">
<mxGeometry y="144" width="260" height="44" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-257" value="" style="endArrow=open;shadow=0;strokeWidth=1;rounded=0;curved=0;endFill=1;edgeStyle=elbowEdgeStyle;elbow=vertical;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1.005;entryY=0.141;entryDx=0;entryDy=0;entryPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="RpgjhCyierjXjDvT_ClI-18" target="3yT8356qW33JT61PNnHo-200" edge="1">
<mxGeometry x="0.5" y="41" relative="1" as="geometry">
<mxPoint x="-877.3359999999998" y="-225.5039999999999" as="sourcePoint" />
<mxPoint x="957" y="-368" as="targetPoint" />
<mxPoint x="-40" y="32" as="offset" />
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-258" value="1" style="resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="3yT8356qW33JT61PNnHo-257" connectable="0" vertex="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-259" value="0....*" style="resizable=0;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="3yT8356qW33JT61PNnHo-257" connectable="0" vertex="1">
<mxGeometry x="1" relative="1" as="geometry">
<mxPoint x="-7" y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-260" value="" style="endArrow=open;shadow=0;strokeWidth=1;rounded=0;curved=0;endFill=1;edgeStyle=elbowEdgeStyle;elbow=vertical;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" target="3yT8356qW33JT61PNnHo-216" edge="1">
<mxGeometry x="0.5" y="41" relative="1" as="geometry">
<mxPoint x="-520" y="183" as="sourcePoint" />
<mxPoint x="770" y="-294" as="targetPoint" />
<mxPoint x="-40" y="32" as="offset" />
<Array as="points">
<mxPoint x="-960" y="150" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-261" value="1" style="resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="3yT8356qW33JT61PNnHo-260" connectable="0" vertex="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-262" value="0....*" style="resizable=0;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="3yT8356qW33JT61PNnHo-260" connectable="0" vertex="1">
<mxGeometry x="1" relative="1" as="geometry">
<mxPoint x="-7" y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-298" value="EncryptionModule" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="-150" y="-310" width="180" height="138" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-305" value="-key: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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-298" vertex="1">
<mxGeometry y="26" width="180" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-300" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="3yT8356qW33JT61PNnHo-298" vertex="1">
<mxGeometry y="52" width="180" height="8" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-307" value="+generateRandomKey():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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-298" vertex="1">
<mxGeometry y="60" width="180" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-301" value="+encryptField(field:string):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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-298" vertex="1">
<mxGeometry y="86" width="180" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-306" value="+decryptField(field:string):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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-298" vertex="1">
<mxGeometry y="112" width="180" height="26" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-311" value="AuthenticationModule" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="-630" y="1290" width="295" height="174" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-313" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="3yT8356qW33JT61PNnHo-311" vertex="1">
<mxGeometry y="26" width="295" height="8" as="geometry" />
</mxCell>
<mxCell id="3yT8356qW33JT61PNnHo-314" value="+isUserLoggedIn(username:string):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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-311" vertex="1">
<mxGeometry y="34" width="295" height="26" as="geometry" />
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-10" value="+startOrRenewSession(username:string):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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-311" vertex="1">
<mxGeometry y="60" width="295" height="26" as="geometry" />
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-11" value="+verifyPassword(password:string, hashedPassword:string):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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-311" vertex="1">
<mxGeometry y="86" width="295" height="44" as="geometry" />
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-12" value="+hashedPassword(password:string):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;whiteSpace=wrap;html=1;" parent="3yT8356qW33JT61PNnHo-311" vertex="1">
<mxGeometry y="130" width="295" height="44" as="geometry" />
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-7" value="&amp;lt;&amp;lt;uses&amp;gt;&amp;gt;" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;entryX=0.887;entryY=-0.007;entryDx=0;entryDy=0;entryPerimeter=0;exitX=-0.003;exitY=0.021;exitDx=0;exitDy=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="QegDPVJf7pusOnz6bvU5-7" target="3yT8356qW33JT61PNnHo-234" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-1458.2399999999998" y="-349.5300000000002" as="sourcePoint" />
<mxPoint x="1010" y="-420" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-8" value="&amp;lt;&amp;lt;uses&amp;gt;&amp;gt;" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;entryX=0.964;entryY=0.007;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.111;exitY=-0.004;exitDx=0;exitDy=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="3yT8356qW33JT61PNnHo-200" target="3yT8356qW33JT61PNnHo-234" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1020" y="-446" as="sourcePoint" />
<mxPoint x="1166" y="-540" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-9" value="&amp;lt;&amp;lt;uses&amp;gt;&amp;gt;" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;entryX=0.999;entryY=0.04;entryDx=0;entryDy=0;entryPerimeter=0;exitX=-0.002;exitY=0.088;exitDx=0;exitDy=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="3yT8356qW33JT61PNnHo-216" target="3yT8356qW33JT61PNnHo-234" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1040" y="-199" as="sourcePoint" />
<mxPoint x="1196" y="-379" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-16" value="CacheModule" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="1170" y="1270" width="335" height="182" as="geometry" />
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-19" value="-cacheDictionary:Dictionary&amp;lt;key:string, item:CacheItem&amp;gt;" 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;whiteSpace=wrap;html=1;" parent="YVuoH4td5erzohnSMb-A-16" vertex="1">
<mxGeometry y="26" width="335" height="26" as="geometry" />
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-17" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="YVuoH4td5erzohnSMb-A-16" vertex="1">
<mxGeometry y="52" width="335" height="8" as="geometry" />
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-22" value="+get(key:string):CacheItem" 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;whiteSpace=wrap;html=1;" parent="YVuoH4td5erzohnSMb-A-16" vertex="1">
<mxGeometry y="60" width="335" height="26" as="geometry" />
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-21" value="+set():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;whiteSpace=wrap;html=1;" parent="YVuoH4td5erzohnSMb-A-16" vertex="1">
<mxGeometry y="86" width="335" height="26" as="geometry" />
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-18" value="+remove():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;whiteSpace=wrap;html=1;" parent="YVuoH4td5erzohnSMb-A-16" vertex="1">
<mxGeometry y="112" width="335" height="26" as="geometry" />
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-20" value="+clear():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;whiteSpace=wrap;html=1;" parent="YVuoH4td5erzohnSMb-A-16" vertex="1">
<mxGeometry y="138" width="335" height="44" as="geometry" />
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-22" value="" style="endArrow=open;shadow=0;strokeWidth=1;rounded=0;curved=0;endFill=1;edgeStyle=elbowEdgeStyle;elbow=vertical;exitX=1.004;exitY=0.87;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1.008;entryY=0.045;entryDx=0;entryDy=0;entryPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="3yT8356qW33JT61PNnHo-133" target="3yT8356qW33JT61PNnHo-142" edge="1">
<mxGeometry x="0.5" y="41" relative="1" as="geometry">
<mxPoint x="-413" y="510" as="sourcePoint" />
<mxPoint x="-370" y="660" as="targetPoint" />
<mxPoint x="-40" y="32" as="offset" />
<Array as="points">
<mxPoint x="190" y="820" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-23" value="1" style="resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="YVuoH4td5erzohnSMb-A-22" connectable="0" vertex="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-24" value="1" style="resizable=0;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="YVuoH4td5erzohnSMb-A-22" connectable="0" vertex="1">
<mxGeometry x="1" relative="1" as="geometry">
<mxPoint x="-7" y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-25" value="FriendsStuff" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="370" y="80" width="370" height="164" as="geometry" />
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-26" value="-syncContacts:Dictionary&amp;lt;string, User&amp;gt;" 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;whiteSpace=wrap;html=1;" parent="YVuoH4td5erzohnSMb-A-25" vertex="1">
<mxGeometry y="26" width="370" height="26" as="geometry" />
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-29" value="-allowedProfiles:Dictionary&amp;lt;Post, List&amp;lt;User&amp;gt;&amp;gt;" 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;whiteSpace=wrap;html=1;" parent="YVuoH4td5erzohnSMb-A-25" vertex="1">
<mxGeometry y="52" width="370" height="26" as="geometry" />
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-27" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="YVuoH4td5erzohnSMb-A-25" vertex="1">
<mxGeometry y="78" width="370" height="8" as="geometry" />
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-33" value="+addSyncContact(contactToAdd:User, key:string):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;whiteSpace=wrap;html=1;" parent="YVuoH4td5erzohnSMb-A-25" vertex="1">
<mxGeometry y="86" width="370" height="26" as="geometry" />
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-31" value="+removeSyncContact(key:string):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;whiteSpace=wrap;html=1;" parent="YVuoH4td5erzohnSMb-A-25" vertex="1">
<mxGeometry y="112" width="370" height="26" as="geometry" />
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-34" value="+addAllowedUserToSeePost(userToAdd:User, key:Post):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;whiteSpace=wrap;html=1;" parent="YVuoH4td5erzohnSMb-A-25" vertex="1">
<mxGeometry y="138" width="370" height="26" as="geometry" />
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-0" value="UI" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="640" y="300" width="310" height="112" as="geometry" />
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-1" value="-casualProfileService:CasualProfileService" 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;whiteSpace=wrap;html=1;" parent="Jgvn7Q0khOcXt6AM1Krj-0" vertex="1">
<mxGeometry y="26" width="310" height="26" as="geometry" />
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-44" value="-professionalProfileService:ProfessionalProfileService" 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;whiteSpace=wrap;html=1;" parent="Jgvn7Q0khOcXt6AM1Krj-0" vertex="1">
<mxGeometry y="52" width="310" height="26" as="geometry" />
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-2" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="Jgvn7Q0khOcXt6AM1Krj-0" vertex="1">
<mxGeometry y="78" width="310" height="8" as="geometry" />
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-45" value="+switchProfiles():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;whiteSpace=wrap;html=1;" parent="Jgvn7Q0khOcXt6AM1Krj-0" vertex="1">
<mxGeometry y="86" width="310" height="26" as="geometry" />
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-4" value="" style="endArrow=open;endFill=1;endSize=12;html=1;rounded=0;exitX=-0.02;exitY=0.096;exitDx=0;exitDy=0;entryX=0.856;entryY=-0.023;entryDx=0;entryDy=0;entryPerimeter=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="Jgvn7Q0khOcXt6AM1Krj-0" target="zkfFHV4jXpPFQw0GAbJ--17" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="-100" y="210" as="sourcePoint" />
<mxPoint x="60" y="210" as="targetPoint" />
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-5" value="" style="endArrow=open;endFill=1;endSize=12;html=1;rounded=0;exitX=0.003;exitY=0.261;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.697;entryY=-0.004;entryDx=0;entryDy=0;entryPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="zkfFHV4jXpPFQw0GAbJ--7" target="3yT8356qW33JT61PNnHo-103" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="300" y="770" as="sourcePoint" />
<mxPoint x="610" y="933" as="targetPoint" />
<Array as="points">
<mxPoint x="510" y="915" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-8" value="" style="endArrow=open;endFill=1;endSize=12;html=1;rounded=0;exitX=1.014;exitY=0.853;exitDx=0;exitDy=0;exitPerimeter=0;entryX=-0.001;entryY=0.047;entryDx=0;entryDy=0;entryPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="zkfFHV4jXpPFQw0GAbJ--11" target="3yT8356qW33JT61PNnHo-3" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="500" y="367" as="sourcePoint" />
<mxPoint x="810" y="530" as="targetPoint" />
<Array as="points" />
</mxGeometry>
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-9" value="" style="endArrow=open;endFill=1;endSize=12;html=1;rounded=0;exitX=1.002;exitY=0.742;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.004;entryY=0.022;entryDx=0;entryDy=0;entryPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="3yT8356qW33JT61PNnHo-4" target="zkfFHV4jXpPFQw0GAbJ--13" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="860" y="260" as="sourcePoint" />
<mxPoint x="1170" y="423" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-10" value="" style="endArrow=open;shadow=0;strokeWidth=1;rounded=0;curved=0;endFill=1;edgeStyle=elbowEdgeStyle;elbow=vertical;entryX=0.036;entryY=-0.019;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1.002;exitY=0.201;exitDx=0;exitDy=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" target="QegDPVJf7pusOnz6bvU5-81" edge="1">
<mxGeometry x="0.5" y="41" relative="1" as="geometry">
<mxPoint x="1690.5" y="448.2260000000001" as="sourcePoint" />
<mxPoint x="1555" y="356" as="targetPoint" />
<mxPoint x="-40" y="32" as="offset" />
<Array as="points">
<mxPoint x="1440" y="430" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-11" value="1" style="resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="Jgvn7Q0khOcXt6AM1Krj-10" connectable="0" vertex="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-12" value="0....*" style="resizable=0;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="Jgvn7Q0khOcXt6AM1Krj-10" connectable="0" vertex="1">
<mxGeometry x="1" relative="1" as="geometry">
<mxPoint x="-7" y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-16" value="" style="endArrow=open;shadow=0;strokeWidth=1;rounded=0;curved=0;endFill=1;edgeStyle=elbowEdgeStyle;elbow=vertical;exitX=0.994;exitY=0.27;exitDx=0;exitDy=0;entryX=-0.017;entryY=0.12;entryDx=0;entryDy=0;entryPerimeter=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" target="QegDPVJf7pusOnz6bvU5-85" edge="1">
<mxGeometry x="0.5" y="41" relative="1" as="geometry">
<mxPoint x="1688.5" y="476.02" as="sourcePoint" />
<mxPoint x="1576" y="482" as="targetPoint" />
<mxPoint x="-40" y="32" as="offset" />
<Array as="points">
<mxPoint x="1830" y="480" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-17" value="1" style="resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="Jgvn7Q0khOcXt6AM1Krj-16" connectable="0" vertex="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-18" value="0....*" style="resizable=0;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="Jgvn7Q0khOcXt6AM1Krj-16" connectable="0" vertex="1">
<mxGeometry x="1" relative="1" as="geometry">
<mxPoint x="-7" y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-19" value="&amp;lt;&amp;lt;uses&amp;gt;&amp;gt;" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;entryX=0.39;entryY=0.002;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.16;exitY=1.057;exitDx=0;exitDy=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="3yT8356qW33JT61PNnHo-38" target="3yT8356qW33JT61PNnHo-1" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="720" y="780" as="sourcePoint" />
<mxPoint x="935" y="853" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-20" value="&amp;lt;&amp;lt;uses&amp;gt;&amp;gt;" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;entryX=0.086;entryY=0.004;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.942;exitY=-0.009;exitDx=0;exitDy=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="QegDPVJf7pusOnz6bvU5-45" target="YVuoH4td5erzohnSMb-A-16" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="70" y="977.5" as="sourcePoint" />
<mxPoint x="70" y="1096.5" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-23" value="&amp;lt;&amp;lt;uses&amp;gt;&amp;gt;" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;entryX=1.008;entryY=0.075;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.006;exitY=0.035;exitDx=0;exitDy=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="zkfFHV4jXpPFQw0GAbJ--17" target="3yT8356qW33JT61PNnHo-311" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="200" y="440" as="sourcePoint" />
<mxPoint x="-310" y="329" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-24" value="LoggingModule" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="-840" y="830" width="295" height="156" as="geometry" />
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-25" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="Jgvn7Q0khOcXt6AM1Krj-24" vertex="1">
<mxGeometry y="26" width="295" height="8" as="geometry" />
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-29" value="-createFile():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;whiteSpace=wrap;html=1;" parent="Jgvn7Q0khOcXt6AM1Krj-24" vertex="1">
<mxGeometry y="34" width="295" height="26" as="geometry" />
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-30" value="-flushBufferedMessages():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;whiteSpace=wrap;html=1;" parent="Jgvn7Q0khOcXt6AM1Krj-24" vertex="1">
<mxGeometry y="60" width="295" height="26" as="geometry" />
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-31" value="-writeToFile(severity:string, logMessage:string):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;whiteSpace=wrap;html=1;" parent="Jgvn7Q0khOcXt6AM1Krj-24" vertex="1">
<mxGeometry y="86" width="295" height="26" as="geometry" />
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-28" value="+log(level:string, message: string):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;whiteSpace=wrap;html=1;" parent="Jgvn7Q0khOcXt6AM1Krj-24" vertex="1">
<mxGeometry y="112" width="295" height="44" as="geometry" />
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-37" value="&amp;lt;&amp;lt;uses&amp;gt;&amp;gt;" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;entryX=0.999;entryY=0.064;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.003;exitY=0.07;exitDx=0;exitDy=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="zkfFHV4jXpPFQw0GAbJ--17" target="Jgvn7Q0khOcXt6AM1Krj-24" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="207" y="239" as="sourcePoint" />
<mxPoint x="-70" y="180" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-39" value="" style="endArrow=open;endFill=1;endSize=12;html=1;rounded=0;exitX=0.006;exitY=0.209;exitDx=0;exitDy=0;exitPerimeter=0;entryX=-0.025;entryY=0.132;entryDx=0;entryDy=0;entryPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="zkfFHV4jXpPFQw0GAbJ--8" target="QegDPVJf7pusOnz6bvU5-45" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="320" y="980" as="sourcePoint" />
<mxPoint x="280" y="1280" as="targetPoint" />
<Array as="points">
<mxPoint x="550" y="940" />
<mxPoint x="550" y="1110" />
<mxPoint x="550" y="1288" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-40" value="" style="endArrow=open;shadow=0;strokeWidth=1;rounded=0;curved=0;endFill=1;edgeStyle=elbowEdgeStyle;elbow=vertical;entryX=-0.006;entryY=0.086;entryDx=0;entryDy=0;entryPerimeter=0;exitX=-0.004;exitY=0.14;exitDx=0;exitDy=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="3yT8356qW33JT61PNnHo-104" target="3yT8356qW33JT61PNnHo-69" edge="1">
<mxGeometry x="0.5" y="41" relative="1" as="geometry">
<mxPoint y="1368" as="sourcePoint" />
<mxPoint x="-169" y="1496" as="targetPoint" />
<mxPoint x="-40" y="32" as="offset" />
<Array as="points">
<mxPoint x="210" y="1480" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-41" value="1" style="resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="Jgvn7Q0khOcXt6AM1Krj-40" connectable="0" vertex="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-42" value="1" style="resizable=0;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="Jgvn7Q0khOcXt6AM1Krj-40" connectable="0" vertex="1">
<mxGeometry x="1" relative="1" as="geometry">
<mxPoint x="-7" y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="Jgvn7Q0khOcXt6AM1Krj-43" value="&amp;lt;&amp;lt;uses&amp;gt;&amp;gt;" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0.596;exitY=-0.002;exitDx=0;exitDy=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="QegDPVJf7pusOnz6bvU5-7" target="3yT8356qW33JT61PNnHo-306" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-924.3399999999997" y="250.39600000000019" as="sourcePoint" />
<mxPoint x="-406" y="-510" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-36" value="" style="endArrow=open;shadow=0;strokeWidth=1;rounded=0;curved=0;endFill=1;edgeStyle=elbowEdgeStyle;elbow=vertical;entryX=-0.015;entryY=0.065;entryDx=0;entryDy=0;exitX=-0.014;exitY=0.015;exitDx=0;exitDy=0;exitPerimeter=0;entryPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="YVuoH4td5erzohnSMb-A-35" target="YVuoH4td5erzohnSMb-A-25" edge="1">
<mxGeometry x="0.5" y="41" relative="1" as="geometry">
<mxPoint x="747" y="220" as="sourcePoint" />
<mxPoint x="170" y="440" as="targetPoint" />
<mxPoint x="-40" y="32" as="offset" />
<Array as="points">
<mxPoint x="270" y="92" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-37" value="1" style="resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="YVuoH4td5erzohnSMb-A-36" connectable="0" vertex="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="YVuoH4td5erzohnSMb-A-38" value="1" style="resizable=0;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="YVuoH4td5erzohnSMb-A-36" connectable="0" vertex="1">
<mxGeometry x="1" relative="1" as="geometry">
<mxPoint x="-7" y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HAcjH7s37PdUv2kKTBzC-7" value="" style="endArrow=open;shadow=0;strokeWidth=1;rounded=0;curved=0;endFill=1;edgeStyle=elbowEdgeStyle;elbow=vertical;exitX=1;exitY=0.059;exitDx=0;exitDy=0;entryX=0.826;entryY=0.002;entryDx=0;entryDy=0;entryPerimeter=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="YVuoH4td5erzohnSMb-A-25" target="zkfFHV4jXpPFQw0GAbJ--0" edge="1">
<mxGeometry x="0.5" y="41" relative="1" as="geometry">
<mxPoint x="1094" y="278" as="sourcePoint" />
<mxPoint x="1290" y="124" as="targetPoint" />
<mxPoint x="-40" y="32" as="offset" />
<Array as="points">
<mxPoint x="1130" y="60" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="HAcjH7s37PdUv2kKTBzC-8" value="1" style="resizable=0;align=left;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="HAcjH7s37PdUv2kKTBzC-7" connectable="0" vertex="1">
<mxGeometry x="-1" relative="1" as="geometry">
<mxPoint y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HAcjH7s37PdUv2kKTBzC-9" value="0....*" style="resizable=0;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=12;" parent="HAcjH7s37PdUv2kKTBzC-7" connectable="0" vertex="1">
<mxGeometry x="1" relative="1" as="geometry">
<mxPoint x="-7" y="4" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="jMsSAuW4ZZrgwY4D7xXW-0" value="ConfigurationModule" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="-730" y="1080" width="430" height="120" as="geometry" />
</mxCell>
<mxCell id="jMsSAuW4ZZrgwY4D7xXW-1" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="jMsSAuW4ZZrgwY4D7xXW-0" vertex="1">
<mxGeometry y="26" width="430" height="8" as="geometry" />
</mxCell>
<mxCell id="jMsSAuW4ZZrgwY4D7xXW-10" value="+getSetting(string key): T" 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;whiteSpace=wrap;html=1;" parent="jMsSAuW4ZZrgwY4D7xXW-0" vertex="1">
<mxGeometry y="34" width="430" height="26" as="geometry" />
</mxCell>
<mxCell id="jMsSAuW4ZZrgwY4D7xXW-11" value="+parseJson(string json): Dictionary&amp;lt;key: string, value: Object&amp;gt;" 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;whiteSpace=wrap;html=1;" parent="jMsSAuW4ZZrgwY4D7xXW-0" vertex="1">
<mxGeometry y="60" width="430" height="26" as="geometry" />
</mxCell>
<mxCell id="jMsSAuW4ZZrgwY4D7xXW-2" value="&lt;div&gt;+loadFromJson(string filePath): void&lt;/div&gt;" 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;whiteSpace=wrap;html=1;" parent="jMsSAuW4ZZrgwY4D7xXW-0" vertex="1">
<mxGeometry y="86" width="430" height="34" as="geometry" />
</mxCell>
<mxCell id="jMsSAuW4ZZrgwY4D7xXW-8" value="&amp;lt;&amp;lt;uses&amp;gt;&amp;gt;" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;entryX=0.598;entryY=0.001;entryDx=0;entryDy=0;entryPerimeter=0;exitX=-0.005;exitY=0.086;exitDx=0;exitDy=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="zkfFHV4jXpPFQw0GAbJ--17" target="jMsSAuW4ZZrgwY4D7xXW-0" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="211" y="457" as="sourcePoint" />
<mxPoint x="-475" y="910" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="7Z-h_UDIuQHWzcK5ADaV-3" value="MockTextPost" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="440" y="2110" width="190" height="60" as="geometry" />
</mxCell>
<mxCell id="QVfi3se21Ql85yWSjc6v-1" value="-description: 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;whiteSpace=wrap;html=1;" parent="7Z-h_UDIuQHWzcK5ADaV-3" vertex="1">
<mxGeometry y="26" width="190" height="26" as="geometry" />
</mxCell>
<mxCell id="7Z-h_UDIuQHWzcK5ADaV-4" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="7Z-h_UDIuQHWzcK5ADaV-3" vertex="1">
<mxGeometry y="52" width="190" height="8" as="geometry" />
</mxCell>
<mxCell id="7Z-h_UDIuQHWzcK5ADaV-5" value="Extends" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.48;entryY=0.974;entryDx=0;entryDy=0;entryPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="7Z-h_UDIuQHWzcK5ADaV-3" target="3yT8356qW33JT61PNnHo-86" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="230" y="2120" as="sourcePoint" />
<mxPoint x="430" y="2011" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="7Z-h_UDIuQHWzcK5ADaV-17" value="CacheItem" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="1170" y="1530" width="335" height="130" as="geometry" />
</mxCell>
<mxCell id="7Z-h_UDIuQHWzcK5ADaV-24" value="-expirationTimeUtc: DateTime" 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;whiteSpace=wrap;html=1;" parent="7Z-h_UDIuQHWzcK5ADaV-17" vertex="1">
<mxGeometry y="26" width="335" height="26" as="geometry" />
</mxCell>
<mxCell id="7Z-h_UDIuQHWzcK5ADaV-18" value="-value: Tvalue&lt;span style=&quot;color: rgba(0, 0, 0, 0); font-family: monospace; font-size: 0px; text-wrap: nowrap;&quot;&gt;%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22CacheModule%22%20style%3D%22swimlane%3BfontStyle%3D1%3Balign%3Dcenter%3BverticalAlign%3Dtop%3BchildLayout%3DstackLayout%3Bhorizontal%3D1%3BstartSize%3D26%3BhorizontalStack%3D0%3BresizeParent%3D1%3BresizeParentMax%3D0%3BresizeLast%3D0%3Bcollapsible%3D1%3BmarginBottom%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%221350%22%20y%3D%221278%22%20width%3D%22335%22%20height%3D%22182%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%223%22%20value%3D%22-cacheDictionary%3ADictionary%26amp%3Blt%3Bkey%3Astring%2C%20item%3ACacheItem%26amp%3Bgt%3B%22%20style%3D%22text%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%222%22%3E%3CmxGeometry%20y%3D%2226%22%20width%3D%22335%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%224%22%20value%3D%22%22%20style%3D%22line%3BstrokeWidth%3D1%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dmiddle%3BspacingTop%3D-1%3BspacingLeft%3D3%3BspacingRight%3D3%3Brotatable%3D0%3BlabelPosition%3Dright%3Bpoints%3D%5B%5D%3BportConstraint%3Deastwest%3BstrokeColor%3Dinherit%3B%22%20vertex%3D%221%22%20parent%3D%222%22%3E%3CmxGeometry%20y%3D%2252%22%20width%3D%22335%22%20height%3D%228%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%225%22%20value%3D%22%2Bget(key%3Astring)%3ACacheItem%22%20style%3D%22text%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%222%22%3E%3CmxGeometry%20y%3D%2260%22%20width%3D%22335%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%226%22%20value%3D%22%2Bset()%3Avoid%22%20style%3D%22text%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%222%22%3E%3CmxGeometry%20y%3D%2286%22%20width%3D%22335%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%227%22%20value%3D%22%2Bremove()%3Avoid%22%20style%3D%22text%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%222%22%3E%3CmxGeometry%20y%3D%22112%22%20width%3D%22335%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%228%22%20value%3D%22%2Bclear()%3Avoid%22%20style%3D%22text%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%222%22%3E%3CmxGeometry%20y%3D%22138%22%20width%3D%22335%22%20height%3D%2244%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E&lt;/span&gt;" 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;whiteSpace=wrap;html=1;" parent="7Z-h_UDIuQHWzcK5ADaV-17" vertex="1">
<mxGeometry y="52" width="335" height="26" as="geometry" />
</mxCell>
<mxCell id="7Z-h_UDIuQHWzcK5ADaV-19" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="7Z-h_UDIuQHWzcK5ADaV-17" vertex="1">
<mxGeometry y="78" width="335" height="8" as="geometry" />
</mxCell>
<mxCell id="7Z-h_UDIuQHWzcK5ADaV-23" value="+isExpired(): 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;whiteSpace=wrap;html=1;" parent="7Z-h_UDIuQHWzcK5ADaV-17" vertex="1">
<mxGeometry y="86" width="335" height="44" as="geometry" />
</mxCell>
<mxCell id="7Z-h_UDIuQHWzcK5ADaV-25" value="" style="endArrow=open;endFill=1;endSize=12;html=1;rounded=0;entryX=0.997;entryY=0.09;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="YVuoH4td5erzohnSMb-A-19" target="7Z-h_UDIuQHWzcK5ADaV-17" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="1720" y="1320" as="sourcePoint" />
<mxPoint x="1450" y="1490" as="targetPoint" />
<Array as="points">
<mxPoint x="1590" y="1309" />
<mxPoint x="1590" y="1440" />
<mxPoint x="1590" y="1542" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="czLum5bH_eBL0qxSt12o-1" value="&amp;lt;&amp;lt;uses&amp;gt;&amp;gt;" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;entryX=0.543;entryY=-0.025;entryDx=0;entryDy=0;exitX=0.729;exitY=1.046;exitDx=0;exitDy=0;exitPerimeter=0;entryPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="3yT8356qW33JT61PNnHo-38" target="QegDPVJf7pusOnz6bvU5-49" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1300" y="909" as="sourcePoint" />
<mxPoint x="1503" y="860" as="targetPoint" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>