From 9b016f2a9a56da980457c5c0f46faa98218bafb9 Mon Sep 17 00:00:00 2001 From: "Dr. Martin Goik" <goik@hdm-stuttgart.de> Date: Tue, 24 Nov 2020 11:39:40 +0100 Subject: [PATCH] Initializing JDBC chapter --- Doc/DbDevel/Ref/Fig/concurrentOptimistic.svg | 1538 ------------ .../Ref/Fig/concurrentOptimisticFail.svg | 2076 ----------------- Doc/DbDevel/Ref/Screen/accountTransferSum.png | Bin 30650 -> 0 bytes Doc/DbDevel/dbDevel.xml | 363 +-- 4 files changed, 4 insertions(+), 3973 deletions(-) delete mode 100644 Doc/DbDevel/Ref/Fig/concurrentOptimistic.svg delete mode 100644 Doc/DbDevel/Ref/Fig/concurrentOptimisticFail.svg delete mode 100644 Doc/DbDevel/Ref/Screen/accountTransferSum.png diff --git a/Doc/DbDevel/Ref/Fig/concurrentOptimistic.svg b/Doc/DbDevel/Ref/Fig/concurrentOptimistic.svg deleted file mode 100644 index dc3f98471..000000000 --- a/Doc/DbDevel/Ref/Fig/concurrentOptimistic.svg +++ /dev/null @@ -1,1538 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:ns1="http://sozi.baierouge.fr" - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - sodipodi:docname="concurrentOptimistic.svg" - inkscape:version="0.48.4 r9939" - version="1.2" - id="svg2" - height="245.16989" - width="474.46835"> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="2.3643056" - inkscape:cx="238.64055" - inkscape:cy="141.53026" - inkscape:document-units="mm" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:window-width="1920" - inkscape:window-height="1176" - inkscape:window-x="0" - inkscape:window-y="24" - inkscape:window-maximized="1" - showguides="true" - inkscape:guide-bbox="true" - inkscape:snap-global="true" - objecttolerance="10000" - guidetolerance="10000" - units="mm" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0"> - <inkscape:grid - type="xygrid" - id="grid4604" - empspacing="5" - visible="true" - enabled="true" - snapvisiblegridlinesonly="true" - originx="-36.03125px" - originy="-264.83011px" /> - </sodipodi:namedview> - <defs - id="defs4"> - <marker - inkscape:stockid="DiamondMend" - orient="auto" - refY="0" - refX="0" - id="DiamondMend" - style="overflow:visible"> - <path - id="path4249" - d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 0,-7.0710768 z" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - transform="matrix(0.4,0,0,0.4,-2.6,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend"> - <path - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path4158" - inkscape:connector-curvature="0" /> - </marker> - <marker - inkscape:stockid="EmptyTriangleOutL" - orient="auto" - refY="0" - refX="0" - id="EmptyTriangleOutL" - style="overflow:visible"> - <path - id="path4309" - d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" - style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - transform="matrix(0.8,0,0,0.8,-4.8,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Lstart" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Lstart"> - <path - inkscape:connector-curvature="0" - transform="matrix(0.8,0,0,0.8,10,0)" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path3841" /> - </marker> - <marker - inkscape:stockid="SquareM" - orient="auto" - refY="0" - refX="0" - id="SquareM" - style="overflow:visible"> - <path - inkscape:connector-curvature="0" - id="path3914" - d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - transform="scale(0.4,0.4)" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Lend" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.8,0,0,-0.8,-10,0)" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path3844" /> - </marker> - <marker - style="overflow:visible" - id="DiamondM" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="DiamondM"> - <path - inkscape:connector-curvature="0" - transform="scale(0.4,0.4)" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 0,-7.0710768 z" - id="path3923" /> - </marker> - <marker - style="overflow:visible" - id="DiamondMH" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="DiamondMH"> - <path - inkscape:connector-curvature="0" - transform="scale(0.4,0.4)" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 0,-7.0710768 z" - id="path4656" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1LendB" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1LendB"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.8,0,0,-0.8,-10,0)" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path4659" /> - </marker> - <marker - inkscape:stockid="SquareMU" - orient="auto" - refY="0" - refX="0" - id="SquareMU" - style="overflow:visible"> - <path - inkscape:connector-curvature="0" - id="path5221" - d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - transform="scale(0.4,0.4)" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Lend3" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Lend3"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.8,0,0,-0.8,-10,0)" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path5224" /> - </marker> - <marker - style="overflow:visible" - id="DiamondMo" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="DiamondMo"> - <path - inkscape:connector-curvature="0" - transform="scale(0.4,0.4)" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 0,-7.0710768 z" - id="path5799" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1LendO" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1LendO"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.8,0,0,-0.8,-10,0)" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path5802" /> - </marker> - <marker - style="overflow:visible" - id="DiamondM1" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="DiamondM1"> - <path - inkscape:connector-curvature="0" - transform="scale(0.4,0.4)" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 0,-7.0710768 z" - id="path6393" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1LendV" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1LendV"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.8,0,0,-0.8,-10,0)" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6396" /> - </marker> - <marker - inkscape:stockid="SquareMN" - orient="auto" - refY="0" - refX="0" - id="SquareMN" - style="overflow:visible"> - <path - inkscape:connector-curvature="0" - id="path7813" - d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - transform="scale(0.4,0.4)" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1LstartP" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1LstartP"> - <path - inkscape:connector-curvature="0" - transform="matrix(0.8,0,0,0.8,10,0)" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path7816" /> - </marker> - <marker - inkscape:stockid="SquareMb" - orient="auto" - refY="0" - refX="0" - id="SquareMb" - style="overflow:visible"> - <path - inkscape:connector-curvature="0" - id="path9491" - d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - transform="scale(0.4,0.4)" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1LendX" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1LendX"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.8,0,0,-0.8,-10,0)" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path9494" /> - </marker> - <marker - inkscape:stockid="SquareM8" - orient="auto" - refY="0" - refX="0" - id="SquareM8" - style="overflow:visible"> - <path - inkscape:connector-curvature="0" - id="path10143" - d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - transform="scale(0.4,0.4)" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1LendT" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1LendT"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.8,0,0,-0.8,-10,0)" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path10146" /> - </marker> - <marker - inkscape:stockid="SquareMNT" - orient="auto" - refY="0" - refX="0" - id="SquareMNT" - style="overflow:visible"> - <path - inkscape:connector-curvature="0" - id="path12195" - d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - transform="scale(0.4,0.4)" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1LstartPJ" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1LstartPJ"> - <path - inkscape:connector-curvature="0" - transform="matrix(0.8,0,0,0.8,10,0)" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path12198" /> - </marker> - <marker - inkscape:stockid="SquareMNTL" - orient="auto" - refY="0" - refX="0" - id="SquareMNTL" - style="overflow:visible"> - <path - inkscape:connector-curvature="0" - id="path12907" - d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - transform="scale(0.4,0.4)" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Lendx" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Lendx"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.8,0,0,-0.8,-10,0)" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path12910" /> - </marker> - <marker - style="overflow:visible" - id="DiamondMoY" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="DiamondMoY"> - <path - inkscape:connector-curvature="0" - transform="scale(0.4,0.4)" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 0,-7.0710768 z" - id="path13187" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1LendOe" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1LendOe"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.8,0,0,-0.8,-10,0)" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path13190" /> - </marker> - <marker - inkscape:stockid="EmptyTriangleOutLt" - orient="auto" - refY="0" - refX="0" - id="EmptyTriangleOutLt" - style="overflow:visible"> - <path - id="path4692" - d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - transform="matrix(0.8,0,0,0.8,-4.8,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - inkscape:stockid="EmptyTriangleOutLt" - orient="auto" - refY="0" - refX="0" - id="EmptyTriangleOutLt-8" - style="overflow:visible"> - <path - id="path4692-6" - d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - transform="matrix(0.8,0,0,0.8,-4.8,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - inkscape:stockid="EmptyTriangleOutLt" - orient="auto" - refY="0" - refX="0" - id="EmptyTriangleOutLt-3" - style="overflow:visible"> - <path - id="path4692-7" - d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - transform="matrix(0.8,0,0,0.8,-4.8,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1MendK" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1MendK"> - <path - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path5820" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mendw" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mendw"> - <path - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6591" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend6" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend6"> - <path - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6594" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend6-6" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend6"> - <path - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6594-3" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend6z" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend6z"> - <path - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6949" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend6z-8" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend6z"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6949-5" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend6z-3" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend6z"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6949-0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend6z-1" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend6z"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6949-1" /> - </marker> - </defs> - <metadata - id="metadata7"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - transform="translate(-36.03125,-542.36221)" - id="layer1" - inkscape:groupmode="layer" - inkscape:label="Layer 1"> - <rect - y="542.20227" - x="330.04712" - height="219.77139" - width="136.03505" - id="view50-5" - style="fill:#f2f2f2;stroke:none" /> - <rect - transform="translate(0,502.36221)" - y="40" - x="125" - height="220" - width="90" - id="rect6832" - style="fill:#f2f2f2;stroke:none" /> - <text - transform="translate(0,308.2677)" - sodipodi:linespacing="125%" - id="text3004" - y="81.43441" - x="97.984795" - style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="81.43441" - x="97.984795" - id="tspan3006" - sodipodi:role="line" /></text> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - x="51.716835" - y="584.505" - id="text4576" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan4578" - x="51.716835" - y="584.505">Database</tspan></text> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - x="45" - y="602.36218" - id="text4580" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan4582" - x="45" - y="602.36218">(persistent)</tspan></text> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - x="45" - y="722.36218" - id="text4584" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - x="45" - y="722.36218" - id="tspan4588">Client</tspan></text> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - x="35" - y="742.36218" - id="text4592" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan4594" - x="35" - y="742.36218">(transient)</tspan></text> - <g - id="g4179" - transform="translate(1,19.000027)"> - <text - sodipodi:linespacing="125%" - id="text4596" - y="563.36218" - x="144" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="563.36218" - x="144" - id="tspan4598" - sodipodi:role="line">Jim</tspan></text> - <text - sodipodi:linespacing="125%" - id="text4600" - y="579.36218" - x="145" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="579.36218" - x="145" - id="tspan4602" - sodipodi:role="line">37</tspan></text> - <rect - transform="translate(0,502.36221)" - y="50" - x="140" - height="30" - width="25" - id="rect4175" - style="fill:none;stroke:#000000" /> - <path - transform="translate(0,502.36221)" - inkscape:connector-curvature="0" - id="path4177" - d="m 140,65 25,0 0,0" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <g - transform="translate(196,114.00003)" - id="g4179-5"> - <text - sodipodi:linespacing="125%" - id="text4596-5" - y="563.36218" - x="144" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="563.36218" - x="144" - id="tspan4598-2" - sodipodi:role="line">Jim</tspan></text> - <text - sodipodi:linespacing="125%" - id="text4600-3" - y="579.36218" - x="145" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="579.36218" - x="145" - id="tspan4602-7" - sodipodi:role="line">37</tspan></text> - <rect - transform="translate(0,502.36221)" - y="50" - x="140" - height="30" - width="25" - id="rect4175-5" - style="fill:none;stroke:#000000" /> - <path - transform="translate(0,502.36221)" - inkscape:connector-curvature="0" - id="path4177-6" - d="m 140,65 25,0 0,0" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <g - transform="translate(116,159.00003)" - id="g4179-8"> - <text - sodipodi:linespacing="125%" - id="text4596-7" - y="563.36218" - x="144" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="563.36218" - x="144" - id="tspan4598-5" - sodipodi:role="line">Sid</tspan></text> - <text - sodipodi:linespacing="125%" - id="text4600-4" - y="579.36218" - x="145" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="579.36218" - x="145" - id="tspan4602-71" - sodipodi:role="line">37</tspan></text> - <rect - transform="translate(0,502.36221)" - y="50" - x="140" - height="30" - width="25" - id="rect4175-1" - style="fill:none;stroke:#000000" /> - <path - transform="translate(0,502.36221)" - inkscape:connector-curvature="0" - id="path4177-60" - d="m 140,65 25,0 0,0" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <g - transform="translate(1,159.00006)" - id="g4179-51"> - <text - sodipodi:linespacing="125%" - id="text4596-1" - y="563.36218" - x="144" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="563.36218" - x="144" - id="tspan4598-25" - sodipodi:role="line">Jim</tspan></text> - <text - sodipodi:linespacing="125%" - id="text4600-31" - y="579.36218" - x="145" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="579.36218" - x="145" - id="tspan4602-8" - sodipodi:role="line">37</tspan></text> - <rect - transform="translate(0,502.36221)" - y="50" - x="140" - height="30" - width="25" - id="rect4175-0" - style="fill:none;stroke:#000000" /> - <path - transform="translate(0,502.36221)" - inkscape:connector-curvature="0" - id="path4177-8" - d="m 140,65 25,0 0,0" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <g - transform="translate(196,19.000027)" - id="g4179-2"> - <text - sodipodi:linespacing="125%" - id="text4596-6" - y="563.36218" - x="144" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="563.36218" - x="144" - id="tspan4598-6" - sodipodi:role="line">Jim</tspan></text> - <text - sodipodi:linespacing="125%" - id="text4600-43" - y="579.36218" - x="145" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="579.36218" - x="145" - id="tspan4602-1" - sodipodi:role="line">37</tspan></text> - <rect - transform="translate(0,502.36221)" - y="50" - x="140" - height="30" - width="25" - id="rect4175-9" - style="fill:none;stroke:#000000" /> - <path - transform="translate(0,502.36221)" - inkscape:connector-curvature="0" - id="path4177-5" - d="m 140,65 25,0 0,0" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <g - transform="translate(196,159.00006)" - id="g4179-8-6"> - <text - sodipodi:linespacing="125%" - id="text4596-7-8" - y="563.36218" - x="144" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="563.36218" - x="144" - id="tspan4598-5-3" - sodipodi:role="line">Sid</tspan></text> - <text - sodipodi:linespacing="125%" - id="text4600-4-2" - y="579.36218" - x="145" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="579.36218" - x="145" - id="tspan4602-71-7" - sodipodi:role="line">37</tspan></text> - <rect - transform="translate(0,502.36221)" - y="50" - x="140" - height="30" - width="25" - id="rect4175-1-0" - style="fill:none;stroke:#000000" /> - <path - transform="translate(0,502.36221)" - inkscape:connector-curvature="0" - id="path4177-60-8" - d="m 140,65 25,0 0,0" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - x="380" - y="667.36218" - id="text3223" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan3225" - x="380" - y="667.36218">still</tspan></text> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - x="380" - y="677.36218" - id="text3227" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan3229" - x="380" - y="677.36218">equal</tspan></text> - <path - sodipodi:nodetypes="cc" - style="fill:#ff0000;stroke:#ff0000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1MendK)" - d="m 375,672.36221 -15,10" - id="path3231" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="cc" - style="fill:#ff0000;stroke:#ff0000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6)" - d="m 385,682.36221 -25,45" - id="path3231-0" - inkscape:connector-curvature="0" /> - <g - transform="translate(296,159.00003)" - id="g4179-8-6-9"> - <text - sodipodi:linespacing="125%" - id="text4596-7-8-8" - y="563.36218" - x="144" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="563.36218" - x="144" - id="tspan4598-5-3-6" - sodipodi:role="line">Sid</tspan></text> - <text - sodipodi:linespacing="125%" - id="text4600-4-2-5" - y="579.36218" - x="145" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="579.36218" - x="145" - id="tspan4602-71-7-2" - sodipodi:role="line">38</tspan></text> - <rect - transform="translate(0,502.36221)" - y="50" - x="140" - height="30" - width="25" - id="rect4175-1-0-0" - style="fill:none;stroke:#000000" /> - <path - transform="translate(0,502.36221)" - inkscape:connector-curvature="0" - id="path4177-60-8-8" - d="m 140,65 25,0 0,0" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <path - sodipodi:nodetypes="cc" - style="fill:#ff0000;stroke:#ff0000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mendw)" - d="m 360,732.36221 75,0" - id="path3231-0-4" - inkscape:connector-curvature="0" /> - <text - sodipodi:linespacing="125%" - id="text5005" - y="752.36218" - x="415" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="752.36218" - x="415" - id="tspan5007" - sodipodi:role="line">+1</tspan></text> - <g - transform="translate(296,19.000027)" - id="g4179-8-6-9-3"> - <text - sodipodi:linespacing="125%" - id="text4596-7-8-8-0" - y="563.36218" - x="144" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="563.36218" - x="144" - id="tspan4598-5-3-6-7" - sodipodi:role="line">Sid</tspan></text> - <text - sodipodi:linespacing="125%" - id="text4600-4-2-5-2" - y="579.36218" - x="145" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="579.36218" - x="145" - id="tspan4602-71-7-2-3" - sodipodi:role="line">38</tspan></text> - <rect - transform="translate(0,502.36221)" - y="50" - x="140" - height="30" - width="25" - id="rect4175-1-0-0-5" - style="fill:none;stroke:#000000" /> - <path - transform="translate(0,502.36221)" - inkscape:connector-curvature="0" - id="path4177-60-8-8-6" - d="m 140,65 25,0 0,0" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <text - sodipodi:linespacing="125%" - id="text6824" - y="557.36218" - x="130" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="557.36218" - x="130" - id="tspan6826" - sodipodi:role="line">Transaction 1</tspan></text> - <text - sodipodi:linespacing="125%" - id="text6828" - y="557.36218" - x="360" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="557.36218" - x="360" - id="tspan6830" - sodipodi:role="line">Transaction 2</tspan></text> - <path - sodipodi:nodetypes="cc" - style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" - d="m 165,717.36221 90,0" - id="path3231-0-2" - inkscape:connector-curvature="0" /> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - x="220" - y="732.36218" - id="text7197" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan7199" - x="220" - y="732.36218">edit</tspan></text> - <path - style="fill:none;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.99685039, 0.9992126;stroke-dashoffset:0" - d="m 45,135 305,0" - id="path7201" - inkscape:connector-curvature="0" - transform="translate(0,502.36221)" - sodipodi:nodetypes="cc" /> - <path - sodipodi:nodetypes="cc" - style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" - d="m 450,712.36221 0,-110" - id="path3231-0-2-2" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="cc" - style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" - d="m 350,602.36221 0,60" - id="path3231-0-2-0" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="cc" - style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" - d="m 155,602.36221 0,105" - id="path3231-0-2-6" - inkscape:connector-curvature="0" /> - <g - id="g7293" - transform="translate(-104,-119.99997)"> - <text - sodipodi:linespacing="125%" - id="text7257" - y="777.36218" - x="250" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="777.36218" - x="250" - id="tspan7259" - sodipodi:role="line">r</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7261" - y="787.36218" - x="249" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="787.36218" - x="249" - id="tspan7263" - sodipodi:role="line">e</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7265" - y="797.36218" - x="249" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="797.36218" - x="249" - id="tspan7267" - sodipodi:role="line">a</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7269" - y="811.36218" - x="249" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="811.36218" - x="249" - id="tspan7271" - sodipodi:role="line">d</tspan></text> - </g> - <g - id="g7303" - transform="translate(148,-124.99997)"> - <text - sodipodi:linespacing="125%" - id="text7273" - y="777.36218" - x="304" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="777.36218" - x="304" - id="tspan7275" - sodipodi:role="line">w</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7277" - y="787.36218" - x="307" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="787.36218" - x="307" - id="tspan7279" - sodipodi:role="line">r</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7281" - y="800.36218" - x="307" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="800.36218" - x="307" - id="tspan7283" - sodipodi:role="line">i</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7285" - y="811.36218" - x="307" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="811.36218" - x="307" - id="tspan7287" - sodipodi:role="line">t</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7289" - y="821.36218" - x="306" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="821.36218" - x="306" - id="tspan7291" - sodipodi:role="line">e</tspan></text> - </g> - <g - id="g7293-1" - transform="translate(106,-159.99997)"> - <text - sodipodi:linespacing="125%" - id="text7257-0" - y="777.36218" - x="250" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="777.36218" - x="250" - id="tspan7259-6" - sodipodi:role="line">r</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7261-0" - y="787.36218" - x="249" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="787.36218" - x="249" - id="tspan7263-7" - sodipodi:role="line">e</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7265-8" - y="797.36218" - x="249" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="797.36218" - x="249" - id="tspan7267-0" - sodipodi:role="line">a</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7269-7" - y="811.36218" - x="249" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="811.36218" - x="249" - id="tspan7271-3" - sodipodi:role="line">d</tspan></text> - </g> - <path - style="fill:none;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.99685039, 0.9992126;stroke-dashoffset:0" - d="m 366.13897,637.36221 143.86103,0" - id="path7201-9" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - x="445" - y="787.36218" - id="text7375" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan7377" - x="445" - y="787.36218">Time</tspan></text> - <path - style="fill:none;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#DiamondMend);marker-end:url(#Arrow1Lend)" - d="m 119.60006,773.96791 375,0" - id="path7379" - inkscape:connector-curvature="0" /> - <g - id="group10"> - <rect - transform="translate(36.03125,542.36221)" - y="25.000002" - x="8.96875" - height="40" - width="125" - id="view10" - style="fill:none;stroke:#0000ff;stroke-width:0.70866141999999999;stroke-miterlimit:4;stroke-dasharray:none" /> - <text - sodipodi:linespacing="125%" - id="text6782" - y="577.36218" - x="110" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:none;fill-opacity:1;stroke:#0000ff;font-family:Sans;stroke-width:1.06299213;stroke-miterlimit:4;stroke-dasharray:none" - xml:space="preserve"><tspan - y="577.36218" - x="110" - id="tspan6784" - sodipodi:role="line">10</tspan></text> - </g> - <g - id="group05" - transform="translate(-3.2479553,-0.08120905)"> - <rect - style="fill:none;stroke:#0000ff;stroke-width:0.99921262;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" - id="view05" - width="480" - height="245" - x="35" - y="542.36218"> - <title - id="title4622">Occ</title> - </rect> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#0000ff;stroke-width:0.35433072;stroke-miterlimit:4;stroke-dasharray:none;font-family:Sans" - x="493.24796" - y="557.44342" - id="text7223" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan7225" - x="493.24796" - y="557.44342">05</tspan></text> - </g> - <g - transform="translate(0,2.8740234e-5)" - id="group20"> - <rect - inkscape:label="#view20" - y="542.36224" - x="35" - height="205" - width="180" - id="view20" - style="fill:none;stroke:#0000ff;stroke-width:0.70866144;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" /> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Sans" - x="200" - y="582.36218" - id="text8119" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan8121" - x="200" - y="582.36218">20</tspan></text> - </g> - <g - id="group30"> - <rect - transform="translate(36.03125,542.36221)" - y="165" - x="98.96875" - height="40" - width="150" - id="view30" - style="fill:none;stroke:#0000ff;stroke-width:0.99921260000000001;stroke-miterlimit:4;stroke-dasharray:none"> - <title - id="title4592">Client side change</title> - </rect> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Sans" - x="265" - y="707.36218" - id="text8123" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan8125" - x="265" - y="707.36218">30</tspan></text> - </g> - <g - id="group40"> - <rect - transform="translate(36.03125,542.36221)" - y="25.000002" - x="293.96875" - height="175" - width="85" - id="view40" - style="fill:none;stroke:#0000ff;stroke-width:0.99921262000000000;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" /> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Sans" - x="400" - y="577.36218" - id="text8127" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan8129" - x="400" - y="577.36218">40</tspan></text> - </g> - <g - id="group50"> - <rect - style="fill:none;stroke:#0000ff" - id="view50" - width="136.03505" - height="219.77139" - x="330.26273" - y="542.71747" /> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Sans" - x="450" - y="552.36218" - id="text8131" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan8133" - x="450" - y="552.36218">50</tspan></text> - </g> - </g> - <script - id="sozi-script" - ns1:version="14.10-05142318">function namespace(b,d,a){var c=b;d.split(".").forEach(function(e){if(typeof c[e]==="undefined"){c[e]={}}c=c[e]});if(a){a(c,b)}return c}namespace(this,"sozi.events",function(b){var a={};b.listen=function(c,d){if(!a.hasOwnProperty(c)){a[c]=[]}a[c].push(d)};b.fire=function(d){var c=Array.prototype.slice.call(arguments,1);if(a.hasOwnProperty(d)){a[d].forEach(function(e){e.apply(null,c)})}}});namespace(this,"sozi.proto",function(a){a.Object={installConstructors:function(){function b(){}b.prototype=this;this.instance=function(){var c=new b();c.construct.apply(c,arguments);return c};this.subtype=function(d){var c=new b();c.augment(d);c.installConstructors();return c}},construct:function(){},augment:function(c){for(var b in c){if(c.hasOwnProperty(b)){this[b]=c[b]}}return this},bind:function(c){var b=this;return function(){return c.apply(b,arguments)}}};a.Object.installConstructors()});namespace(this,"sozi.actions",function(A,g){var u=namespace(g,"sozi.player");var v=namespace(g,"sozi.display");var n=g.document;var o=0;var w=1;var t=1.05;var y=5;var m=5;var r=false;var i=0;var h=0;function a(C,B,D){u.stop();v.viewPorts.player.zoom(C>0?t:1/t,B,D)}function x(B){u.stop();v.viewPorts.player.rotate(B>0?y:-y)}function s(){if(sozi.framelist.isVisible()){sozi.framelist.hide();u.restart()}else{u.stop();sozi.framelist.show()}}function d(B){return v.viewPorts.player.contains(B.clientX,B.clientY)}function f(B){if(!d(B)){return}if(B.button===o){n.documentElement.addEventListener("mousemove",q,false);r=false;i=B.clientX;h=B.clientY}else{if(B.button===w){s()}}B.stopPropagation();B.preventDefault()}function q(B){if(!d(B)){return}u.stop();if(!r&&(Math.abs(B.clientX-i)>m||Math.abs(B.clientY-h)>m)){r=true}if(r){sozi.events.fire("sozi.player.cleanup");v.viewPorts.player.drag(B.clientX-i,B.clientY-h);i=B.clientX;h=B.clientY}B.stopPropagation()}function c(B){if(!d(B)){return}if(B.button===o){n.documentElement.removeEventListener("mousemove",q,false)}B.stopPropagation();B.preventDefault()}function p(B){if(!d(B)){return}u.moveToPrevious();B.stopPropagation();B.preventDefault()}function e(B){if(!d(B)){return}if(!r&&B.button!==w){u.moveToNext()}B.stopPropagation();B.preventDefault()}function j(B){if(!d(B)){return}if(!B){B=g.event}var C=0;if(B.wheelDelta){C=B.wheelDelta}else{if(B.detail){C=-B.detail}}if(C!==0){if(B.shiftKey){x(C)}else{a(C,B.clientX,B.clientY)}}B.stopPropagation();B.preventDefault()}function l(B){if(B.altKey||B.ctrlKey||B.metaKey){return}switch(B.charCode||B.which){case 43:a(1,g.innerWidth/2,g.innerHeight/2);break;case 45:a(-1,g.innerWidth/2,g.innerHeight/2);break;case 61:u.moveToCurrent();break;case 70:case 102:u.showAll();break;case 84:case 116:s();break;case 82:x(-1);break;case 114:x(1);break;default:return}B.stopPropagation();B.preventDefault()}function b(B){if(B.altKey||B.ctrlKey||B.metaKey){return}switch(B.keyCode){case 36:if(B.shiftKey){u.jumpToFirst()}else{u.moveToFirst()}break;case 35:if(B.shiftKey){u.jumpToLast()}else{u.moveToLast()}break;case 38:case 33:case 37:if(B.shiftKey){u.jumpToPrevious()}else{u.moveToPrevious()}break;case 40:case 34:case 39:case 13:case 32:if(B.shiftKey){u.jumpToNext()}else{u.moveToNext()}break;default:return}B.stopPropagation();B.preventDefault()}function z(B){B.stopPropagation()}function k(){var C=n.getElementsByTagName("a");for(var D=0;D<C.length;D+=1){C[D].addEventListener("click",z,false);C[D].addEventListener("contextmenu",z,false)}var B=n.documentElement;B.addEventListener("click",e,false);B.addEventListener("mousedown",f,false);B.addEventListener("mouseup",c,false);B.addEventListener("contextmenu",p,false);B.addEventListener("DOMMouseScroll",j,false);g.onmousewheel=j;B.addEventListener("keypress",l,false);B.addEventListener("keydown",b,false)}sozi.events.listen("sozi.display.ready",k)});namespace(this,"sozi.animation",function(d,g){var h=g.mozRequestAnimationFrame||g.webkitRequestAnimationFrame||g.msRequestAnimationFrame||g.oRequestAnimationFrame;var k=function(){return g.performance&&g.performance.now?g.performance.now():Date.now()};d.setAnimationFrameHandlers=function(l,m){h=l;k=m};var i=40;var c;var j=[];function e(){if(j.length>0){if(h){h(e)}j.forEach(function(l){l.step(k())})}else{if(!h){g.clearInterval(c)}}}function b(){if(h){h(e)}else{c=g.setInterval(function(){e(k())},i)}}function a(l){j.push(l);if(j.length===1){b()}}function f(l){j.splice(j.indexOf(l),1)}d.Animator=sozi.proto.Object.subtype({construct:function(){this.durationMs=0;this.data=null;this.initialTime=0;this.started=false},start:function(l,m){this.durationMs=l;this.data=m;this.initialTime=k();this.onStep(0);if(!this.started){this.started=true;a(this)}},stop:function(){if(this.started){f(this);this.started=false}},step:function(m){var l=m-this.initialTime;if(l>=this.durationMs){this.stop();this.onStep(1);this.onDone()}else{this.onStep(l/this.durationMs)}},onStep:function(l){},onDone:function(){}});d.profiles={linear:function(l){return l},accelerate:function(l){return Math.pow(l,3)},"strong-accelerate":function(l){return Math.pow(l,5)},decelerate:function(l){return 1-Math.pow(1-l,3)},"strong-decelerate":function(l){return 1-Math.pow(1-l,5)},"accelerate-decelerate":function(l){var m=l<=0.5?l:1-l,n=Math.pow(2*m,3)/2;return l<=0.5?n:1-n},"strong-accelerate-decelerate":function(l){var m=l<=0.5?l:1-l,n=Math.pow(2*m,5)/2;return l<=0.5?n:1-n},"decelerate-accelerate":function(l){var m=l<=0.5?l:1-l,n=(1-Math.pow(1-2*m,2))/2;return l<=0.5?n:1-n},"strong-decelerate-accelerate":function(l){var m=l<=0.5?l:1-l,n=(1-Math.pow(1-2*m,3))/2;return l<=0.5?n:1-n},"immediate-beginning":function(l){return 1},"immediate-end":function(l){return l===1?1:0},"immediate-middle":function(l){return l>=0.5?1:0}}});namespace(this,"sozi.display",function(c,g){var f="http://www.w3.org/2000/svg";var b="http://www.w3.org/1999/xlink";var i=g.document;var k;var h;var j;c.viewPorts={};var e;c.CameraState=sozi.proto.Object.subtype({construct:function(){this.cx=this.cy=0;this.width=this.height=1;this.angle=0;this.clipped=true;this.transitionZoomPercent=0;this.transitionProfile=sozi.animation.profiles.linear;this.transitionPath=null},setCenter:function(l,m){this.cx=l;this.cy=m;return this},setSize:function(m,l){this.width=m;this.height=l;return this},setClipped:function(l){this.clipped=l;return this},setAngle:function(l){this.angle=(l+180)%360-180;return this},setRawAngle:function(l){this.angle=l;return this},setTransitionZoomPercent:function(l){this.transitionZoomPercent=l;return this},setTransitionProfile:function(l){this.transitionProfile=l;return this},setTransitionPath:function(l){this.transitionPath=l;return this},setAtElement:function(p){var s,o,t,m;if(p.nodeName==="rect"){s=p.x.baseVal.value;o=p.y.baseVal.value;t=p.width.baseVal.value;m=p.height.baseVal.value}else{var q=p.getBBox();s=q.x;o=q.y;t=q.width;m=q.height}var n=i.documentElement.createSVGPoint();n.x=s+t/2;n.y=o+m/2;var r=p.getCTM();n=n.matrixTransform(r);var l=Math.sqrt(r.a*r.a+r.b*r.b);return this.setCenter(n.x,n.y).setSize(t*l,m*l).setAngle(Math.atan2(r.b,r.a)*180/Math.PI)},setAtState:function(l){return this.setCenter(l.cx,l.cy).setSize(l.width,l.height).setAngle(l.angle).setClipped(l.clipped).setTransitionZoomPercent(l.transitionZoomPercent).setTransitionProfile(l.transitionProfile).setTransitionPath(l.transitionPath)},interpolatableAttributes:["width","height","angle"],interpolate:function(n,o,t,v,r){var p=1-t;for(var q=0;q<this.interpolatableAttributes.length;q+=1){var s=this.interpolatableAttributes[q];this[s]=o[s]*t+n[s]*p}var l=r?n.transitionPath:o.transitionPath;if(v&&l){var x=l.getTotalLength();if(r){var m=l.getPointAtLength(x);var u=l.getPointAtLength(0);var w=l.getPointAtLength(x*p)}else{var m=l.getPointAtLength(0);var u=l.getPointAtLength(x);var w=l.getPointAtLength(x*t)}this.cx=w.x+(o.cx-u.x)*t+(n.cx-m.x)*p;this.cy=w.y+(o.cy-u.y)*t+(n.cy-m.y)*p}else{this.cx=o.cx*t+n.cx*p;this.cy=o.cy*t+n.cy*p}}});c.Camera=c.CameraState.subtype({construct:function(n,o){c.CameraState.construct.call(this);this.viewPort=n;this.svgClipRect=i.createElementNS(f,"rect");var m=i.createElementNS(f,"clipPath");m.setAttribute("id","sozi-clip-path-"+n.id+"-"+o);m.appendChild(this.svgClipRect);n.svgGroup.appendChild(m);var l=i.createElementNS(f,"g");l.setAttribute("clip-path","url(#sozi-clip-path-"+n.id+"-"+o+")");n.svgGroup.appendChild(l);if(n.isPrimary){this.svgLayer=i.createElementNS(f,"g");this.svgLayer.appendChild(i.getElementById(o))}else{this.svgLayer=i.createElementNS(f,"use");this.svgLayer.setAttributeNS(b,"href","#"+o)}l.appendChild(this.svgLayer)},setAtState:function(l){return c.CameraState.setAtState.call(this,l).update()},getScale:function(){return Math.min(this.viewPort.width/this.width,this.viewPort.height/this.height)},rotate:function(l){return this.setAngle(this.angle+l).update()},zoom:function(m,l,n){return this.setSize(this.width/m,this.height/m).drag((1-m)*(l-this.viewPort.width/2),(1-m)*(n-this.viewPort.height/2))},drag:function(m,l){var q=this.getScale();var o=this.angle*Math.PI/180;var n=Math.sin(o);var p=Math.cos(o);return this.setCenter(this.cx-(m*p-l*n)/q,this.cy-(m*n+l*p)/q).setClipped(false).update()},update:function(){var q=this.getScale();var n=this.width*q;var m=this.height*q;var l=(this.viewPort.width-n)/2;var r=(this.viewPort.height-m)/2;this.svgClipRect.setAttribute("x",this.clipped?l:0);this.svgClipRect.setAttribute("y",this.clipped?r:0);this.svgClipRect.setAttribute("width",this.clipped?n:this.viewPort.width);this.svgClipRect.setAttribute("height",this.clipped?m:this.viewPort.height);var p=-this.cx+this.width/2+l/q;var o=-this.cy+this.height/2+r/q;this.svgLayer.setAttribute("transform","scale("+q+")translate("+p+","+o+")rotate("+(-this.angle)+","+this.cx+","+this.cy+")");return this}});c.ViewPort=sozi.proto.Object.subtype({construct:function(n,m,l){this.id=n;c.viewPorts[n]=this;this.isPrimary=!!l;if(this.isPrimary){if(e){throw"Failed to create a primary viewport. A primary viewport already exists."}else{e=this}}this.svgGroup=i.createElementNS(f,"g");this.svgGroup.setAttribute("class","sozi-viewport");this.svgGroup.setAttribute("id","sozi-viewport-"+n);i.documentElement.appendChild(this.svgGroup);this.setLocation(0,0).setSize(g.innerWidth,g.innerHeight);this.cameras={};m.forEach(function(o){this.cameras[o]=c.Camera.instance(this,o)},this)},setSize:function(m,l){this.width=m;this.height=l;return this},setLocation:function(l,m){this.x=l;this.y=m;return this},contains:function(l,m){return l>=this.x&&l<this.x+this.width&&m>=this.y&&m<this.y+this.height},getDocumentState:function(){var m=c.CameraState.instance().setCenter(k.x+k.width/2,k.y+k.height/2).setSize(k.width,k.height).setClipped(false);var l={};for(var n in this.cameras){l[n]=m}return l},update:function(){this.svgGroup.setAttribute("transform","translate("+this.x+","+this.y+")");for(var l in this.cameras){this.cameras[l].update()}return this},showFrame:function(l){for(var m in l.states){this.cameras[m].setAtState(l.states[m])}return this},drag:function(m,l){for(var n in this.cameras){this.cameras[n].drag(m,l)}return this},zoom:function(m,l,o){for(var n in this.cameras){this.cameras[n].zoom(m,l,o)}return this},rotate:function(l){for(var m in this.cameras){this.cameras[m].rotate(l)}return this},onWindowResize:function(m,l){this.setLocation(this.x*m,this.y*l).setSize(this.width*m,this.height*l).update()}});function d(){var l=i.documentElement;k=l.getBBox();h=g.innerWidth;j=g.innerHeight;l.setAttribute("width",h);l.setAttribute("height",j);sozi.events.fire("sozi.display.ready")}function a(){var l=i.documentElement;l.setAttribute("width",g.innerWidth);l.setAttribute("height",g.innerHeight);for(var m in c.viewPorts){c.viewPorts[m].onWindowResize(g.innerWidth/h,g.innerHeight/j)}h=g.innerWidth;j=g.innerHeight}sozi.events.listen("sozi.document.ready",d);g.addEventListener("resize",a,false)});namespace(this,"sozi.document",function(c,e){var g=e.document;var b="http://sozi.baierouge.fr";var d={title:"Untitled",sequence:"0",hide:"true",clip:"true","show-in-frame-list":"true","timeout-enable":"false","timeout-ms":"5000","transition-duration-ms":"1000","transition-zoom-percent":"0","transition-profile":"linear","transition-path-hide":"true"};var h=["g","image","path","rect","circle","ellipse","line","polyline","polygon","text","clippath"];c.frames=[];c.idLayerList=[];function j(l,k){return l.getAttributeNS(b,k)||d[k]}function i(o,p,k){var l=o.states[p]=o.states[p]||sozi.display.CameraState.instance();if(typeof l.transitionZoomPercent==="undefined"||k.hasAttributeNS(b,"transition-zoom-percent")){l.setTransitionZoomPercent(parseInt(j(k,"transition-zoom-percent"),10))}if(typeof l.transitionProfile==="undefined"||k.hasAttributeNS(b,"transition-profile")){l.setTransitionProfile(sozi.animation.profiles[j(k,"transition-profile")])}if(typeof l.transitionPath==="undefined"||k.hasAttributeNS(b,"transition-path")){var n=g.getElementById(k.getAttributeNS(b,"transition-path"));if(n&&n.nodeName==="path"){l.setTransitionPath(n);if(j(k,"transition-path-hide")==="true"){n.style.visibility="hidden"}}}if(k.hasAttributeNS(b,"refid")){var m=g.getElementById(k.getAttributeNS(b,"refid"));if(m){l.setAtElement(m);if(j(k,"hide")==="true"){m.style.visibility="hidden"}}}if(k.hasAttributeNS(b,"clip")){l.setClipped(j(k,"clip")==="true")}}function a(){var l=[];var p=g.getElementsByTagNameNS(b,"layer");for(var n=0;n<p.length;n+=1){var s=p[n].getAttributeNS(b,"group");if(s&&l.indexOf(s)===-1){l.push(s)}}var r=g.documentElement;var o="http://www.w3.org/2000/svg";var q=g.createElementNS(o,"g");var k=Array.prototype.slice.call(r.childNodes);k.forEach(function(u,t){if(!u.getAttribute){r.removeChild(u)}else{if(l.indexOf(u.getAttribute("id"))!==-1){if(q.firstChild){q.setAttribute("id","sozi-wrapper-"+t);c.idLayerList.push("sozi-wrapper-"+t);r.insertBefore(q,u);q=g.createElementNS(o,"g")}c.idLayerList.push(u.getAttribute("id"))}else{if(h.indexOf(u.localName.toLowerCase())!==-1){r.removeChild(u);q.appendChild(u)}}}});if(q.firstChild){q.setAttribute("id","sozi-wrapper-"+k.length);c.idLayerList.push("sozi-wrapper-"+k.length);r.appendChild(q)}var m=Array.prototype.slice.call(g.getElementsByTagNameNS(b,"frame"));m.sort(function(u,t){var w=parseInt(j(u,"sequence"),10);var v=parseInt(j(t,"sequence"),10);return w-v});m.forEach(function(v,u){var x={id:v.getAttribute("id"),title:j(v,"title"),showInFrameList:j(v,"show-in-frame-list")==="true",sequence:parseInt(j(v,"sequence"),10),timeoutEnable:j(v,"timeout-enable")==="true",timeoutMs:parseInt(j(v,"timeout-ms"),10),transitionDurationMs:parseInt(j(v,"transition-duration-ms"),10),states:{}};c.idLayerList.forEach(function(A){if(u===0||A.search("sozi-wrapper-[0-9]+")!==-1){i(x,A,v)}else{var z=x.states[A]=sozi.display.CameraState.instance();var y=c.frames[c.frames.length-1].states[A];z.setAtState(y)}});var t=Array.prototype.slice.call(v.getElementsByTagNameNS(b,"layer"));t.forEach(function(y){var z=y.getAttributeNS(b,"group");if(z&&c.idLayerList.indexOf(z)!==-1){i(x,z,y)}});for(var w in x.states){if(x.states.hasOwnProperty(w)){c.frames.push(x);break}}})}c.getFrameIndexForId=function(l){for(var k=0;k<c.frames.length;k+=1){if(c.frames[k].id===l){return k}}return -1};function f(){g.documentElement.removeAttribute("viewBox");a();sozi.events.fire("sozi.document.ready")}e.addEventListener("load",f,false)});namespace(this,"sozi.framelist",function(u,k){var o=k.document;var c=5;var i;var p;var j=0;var h;var s;var b;var v;var w;var t;var e=300;var f="decelerate";var a="http://www.w3.org/2000/svg";function n(z){var x=z.relatedTarget,y=o.documentElement;while(x&&x!==i&&x!==y){x=x.parentNode}if(x!==i){u.hide();sozi.player.restart();z.stopPropagation()}}function r(y){var x=p.getCTM().f;if(x<=-k.innerHeight/2){x+=k.innerHeight/2}else{if(x<0){x=0}}p.setAttribute("transform","translate(0,"+x+")");y.stopPropagation()}function d(y){var x=p.getCTM().f;if(x+j>=k.innerHeight*3/2){x-=k.innerHeight/2}else{if(x+j>k.innerHeight+2*c){x=k.innerHeight-j-4*c}}p.setAttribute("transform","translate(0,"+x+")");y.stopPropagation()}function g(x){return function(y){sozi.player.previewFrame(x);y.stopPropagation()}}function l(x){x.stopPropagation()}function q(){i=o.createElementNS(a,"g");i.setAttribute("id","sozi-toc");o.documentElement.appendChild(i);p=o.createElementNS(a,"g");i.appendChild(p);var y=o.createElementNS(a,"rect");y.setAttribute("id","sozi-toc-background");y.setAttribute("x",c);y.setAttribute("y",c);y.setAttribute("rx",c);y.setAttribute("ry",c);y.addEventListener("click",l,false);y.addEventListener("mousedown",l,false);y.addEventListener("mouseout",n,false);p.appendChild(y);var A=0;sozi.document.frames.forEach(function(D,E){if(D.showInFrameList){var C=o.createElementNS(a,"text");C.appendChild(o.createTextNode(D.title));C.setAttribute("id","sozi-toc-"+D.id);p.appendChild(C);if(E===sozi.player.currentFrameIndex){C.setAttribute("class","sozi-toc-current")}var B=C.getBBox().width;j+=C.getBBox().height;if(B>A){A=B}C.setAttribute("x",2*c);C.setAttribute("y",j+c);C.addEventListener("click",g(E),false);C.addEventListener("mousedown",l,false)}});var x=o.createElementNS(a,"path");x.setAttribute("class","sozi-toc-arrow");x.setAttribute("d","M"+(A+3*c)+","+(5*c)+" l"+(4*c)+",0 l-"+(2*c)+",-"+(3*c)+" z");x.addEventListener("click",r,false);x.addEventListener("mousedown",l,false);i.appendChild(x);var z=o.createElementNS(a,"path");z.setAttribute("class","sozi-toc-arrow");z.setAttribute("d","M"+(A+3*c)+","+(7*c)+" l"+(4*c)+",0 l-"+(2*c)+","+(3*c)+" z");z.addEventListener("click",d,false);z.addEventListener("mousedown",l,false);i.appendChild(z);y.setAttribute("width",A+7*c);y.setAttribute("height",j+2*c);h=-A-9*c;s=0;w=v=h;i.setAttribute("transform","translate("+h+",0)");t=sozi.animation.Animator.instance().augment({onStep:function(B){var D=sozi.animation.profiles[f](B),C=1-D;w=v*D+b*C;i.setAttribute("transform","translate("+w+",0)")}})}function m(x){var y=Array.prototype.slice.call(o.getElementsByClassName("sozi-toc-current"));y.forEach(function(A){A.removeAttribute("class")});var z=sozi.document.frames[x];if(z.showInFrameList){o.getElementById("sozi-toc-"+z.id).setAttribute("class","sozi-toc-current")}}u.show=function(){o.documentElement.appendChild(i);b=w;v=s;t.start(e)};u.hide=function(){b=w;v=h;t.start(e)};u.isVisible=function(){return v===s};sozi.events.listen("sozi.player.ready",q);sozi.events.listen("sozi.player.cleanup",u.hide);sozi.events.listen("sozi.player.framechange",m)});namespace(this,"sozi.framenumber",function(a,d){var g=d.document;var e;var k,i;var f;var b="http://www.w3.org/2000/svg";function h(){var m=k.getBBox(),n=Math.max(m.width,m.height)*0.75,l=n*1.25;f.setAttribute("r",n);e.setAttribute("transform","translate("+l+","+l+")")}function c(){e=g.createElementNS(b,"g");k=g.createElementNS(b,"text");f=g.createElementNS(b,"circle");e.setAttribute("id","sozi-framenumber");f.setAttribute("cx",0);f.setAttribute("cy",0);e.appendChild(f);i=g.createTextNode(sozi.player.currentFrameIndex+1);k.setAttribute("text-anchor","middle");k.setAttribute("dominant-baseline","central");k.setAttribute("x",0);k.setAttribute("y",0);k.appendChild(i);e.appendChild(k);g.documentElement.appendChild(e);h()}function j(l){i.nodeValue=l+1}sozi.events.listen("sozi.player.ready",c);sozi.events.listen("sozi.player.framechange",j)});namespace(this,"sozi.links",function(c,e){var b="http://www.w3.org/2000/svg";var a="http://www.w3.org/1999/xlink";function f(g){return function(h){sozi.player.moveToFrame(g);h.preventDefault();h.stopPropagation()}}function d(){var h=e.document.getElementsByTagNameNS(b,"a");for(var j=0;j<h.length;j+=1){var g=h[j].getAttributeNS(a,"href");if(g&&g[0]==="#"){h[j].addEventListener("click",f(sozi.location.getFrameIndexForHash(g)),false)}}}sozi.events.listen("sozi.document.ready",d)});namespace(this,"sozi.location",function(a,d){var b=false;a.getFrameIndex=function(){return a.getFrameIndexForHash(d.location.hash)};a.getFrameIndexForHash=function(g){var h=g?g.slice(1):"1";var f;if(/^[0-9]+$/.test(h)){f=parseInt(h,10)-1}else{f=sozi.document.getFrameIndexForId(h)}if(f<0){return 0}else{if(f>=sozi.document.frames.length){return sozi.document.frames.length-1}else{return f}}};function e(){var f=a.getFrameIndex();if(!b){sozi.player.moveToFrame(f)}b=false}function c(f){b=true;d.location.hash="#"+sozi.document.frames[f].id}d.addEventListener("hashchange",e,false);sozi.events.listen("sozi.player.framechange",c)});namespace(this,"sozi.player",function(d,g){var l;var c;var i;var e=500;var n=-10;var j="linear";var f=0;d.currentFrameIndex=0;var k=false;var m=false;function h(){if(sozi.document.frames[d.currentFrameIndex].timeoutEnable){m=true;var o=(d.currentFrameIndex+1)%sozi.document.frames.length;i=g.setTimeout(function(){d.moveToFrame(o)},sozi.document.frames[d.currentFrameIndex].timeoutMs)}}d.startFromIndex=function(o){k=true;m=false;f=o;d.currentFrameIndex=o;l.showFrame(sozi.document.frames[o]);h()};d.restart=function(){d.startFromIndex(d.currentFrameIndex)};d.stop=function(){c.stop();if(m){g.clearTimeout(i);m=false}k=false;f=d.currentFrameIndex};function b(o,y,w){var z={ss:((o<0)?Math.max(y,w):Math.min(y,w))*(100-o)/100,ts:0.5,k:0};if(o!==0){var s=y-w;var r=y-z.ss;var q=w-z.ss;if(s!==0){var p=Math.sqrt(r*q);var x=(r-p)/s;var t=(r+p)/s;z.ts=(x>0&&x<=1)?x:t}z.k=r/z.ts/z.ts}return z}d.jumpToFrame=function(o){d.stop();sozi.events.fire("sozi.player.cleanup");f=o;d.currentFrameIndex=o;l.showFrame(sozi.document.frames[o]);sozi.events.fire("sozi.player.framechange",o)};d.getAnimationData=function(o,q,s,p,v,t){var r={};for(var w in o){r[w]={initialState:sozi.display.CameraState.instance(),finalState:sozi.display.CameraState.instance(),useTransitionPath:v,reverseTransitionPath:t};r[w].profile=p||q[w].transitionProfile;r[w].initialState.setAtState(o[w]);if(q.hasOwnProperty(w)){r[w].finalState.setAtState(q[w])}else{r[w].finalState.setAtState(o[w])}if(r[w].finalState.angle-r[w].initialState.angle>180){r[w].finalState.setRawAngle(r[w].finalState.angle-360)}else{if(r[w].finalState.angle-r[w].initialState.angle<-180){r[w].initialState.setRawAngle(r[w].initialState.angle-360)}}var u=s||q[w].transitionZoomPercent;if(u&&q.hasOwnProperty(w)){r[w].zoomWidth=b(u,o[w].width,q[w].width);r[w].zoomHeight=b(u,o[w].height,q[w].height)}}return r};d.previewFrame=function(o){d.currentFrameIndex=o;c.start(e,d.getAnimationData(l.cameras,sozi.document.frames[o].states,n,sozi.animation.profiles[j]),false,false);sozi.events.fire("sozi.player.framechange",o)};d.moveToFrame=function(r){if(m){g.clearTimeout(i);m=false}var q,t,s,p,o;if(r===(d.currentFrameIndex-1)%sozi.document.frames.length){q=sozi.document.frames[d.currentFrameIndex].transitionDurationMs;t=undefined;s=undefined;p=true;o=true}else{if(r===(d.currentFrameIndex+1)%sozi.document.frames.length){q=sozi.document.frames[r].transitionDurationMs;t=undefined;s=undefined;p=true;o=false}else{q=e;t=n;s=sozi.animation.profiles[j];p=false;o=false}}sozi.events.fire("sozi.player.cleanup");k=true;d.currentFrameIndex=r;c.start(q,d.getAnimationData(l.cameras,sozi.document.frames[r].states,t,s,p,o));sozi.events.fire("sozi.player.framechange",r)};d.jumpToFirst=function(){d.jumpToFrame(0)};d.moveToFirst=function(){d.moveToFrame(0)};d.jumpToPrevious=function(){var o=d.currentFrameIndex;if(!c.started||f<=d.currentFrameIndex){o-=1}if(o>=0){d.jumpToFrame(o)}};d.moveToPrevious=function(){for(var o=d.currentFrameIndex-1;o>=0;o-=1){var p=sozi.document.frames[o];if(!p.timeoutEnable||p.timeoutMs!==0){d.moveToFrame(o);break}}};d.jumpToNext=function(){var o=d.currentFrameIndex;if(!c.started||f>=d.currentFrameIndex){o+=1}if(o<sozi.document.frames.length){d.jumpToFrame(o)}};d.moveToNext=function(){if(d.currentFrameIndex<sozi.document.frames.length-1||sozi.document.frames[d.currentFrameIndex].timeoutEnable){d.moveToFrame((d.currentFrameIndex+1)%sozi.document.frames.length)}};d.jumpToLast=function(){d.jumpToFrame(sozi.document.frames.length-1)};d.moveToLast=function(){d.moveToFrame(sozi.document.frames.length-1)};d.moveToCurrent=function(){d.moveToFrame(d.currentFrameIndex)};d.showAll=function(){d.stop();sozi.events.fire("sozi.player.cleanup");c.start(e,d.getAnimationData(l.cameras,l.getDocumentState(),n,sozi.animation.profiles[j],false,false))};function a(){l=sozi.display.ViewPort.instance("player",sozi.document.idLayerList,true);d.startFromIndex(sozi.location.getFrameIndex());g.setTimeout(l.bind(l.update),1);sozi.events.fire("sozi.player.ready")}d.onAnimationStep=function(o,q){for(var s in q){var p=l.cameras[s];p.interpolate(q[s].initialState,q[s].finalState,q[s].profile(o),q[s].useTransitionPath,q[s].reverseTransitionPath);var r;if(q[s].zoomWidth&&q[s].zoomWidth.k!==0){r=o-q[s].zoomWidth.ts;p.width=q[s].zoomWidth.k*r*r+q[s].zoomWidth.ss}if(q[s].zoomHeight&&q[s].zoomHeight.k!==0){r=o-q[s].zoomHeight.ts;p.height=q[s].zoomHeight.k*r*r+q[s].zoomHeight.ss}p.setClipped(q[s].finalState.clipped)}l.update()};c=sozi.animation.Animator.instance().augment({onStep:function(o){d.onAnimationStep(o,this.data)},onDone:function(){for(var o in this.data){l.cameras[o].setAtState(this.data[o].finalState)}l.update();f=d.currentFrameIndex;if(k){h()}}});sozi.events.listen("sozi.display.ready",a)});</script> - <style - id="sozi-style" - ns1:version="14.10-05142318">#sozi-toc text{fill:#eff;font-family:Verdana,sans-serif;font-size:12pt}#sozi-toc text:hover{fill:#0cf;cursor:pointer}#sozi-toc text.sozi-toc-current{fill:#fa4}#sozi-toc-background{stroke:#222;stroke-opacity:.1;stroke-width:10;fill:#222;fill-opacity:.9}.sozi-toc-arrow{fill:#eff;fill-opacity:.75;stroke:none}.sozi-toc-arrow:hover{fill:#0cf}#sozi-framenumber circle{stroke:#222;stroke-opacity:.1;stroke-width:4;fill:#222;fill-opacity:.9}#sozi-framenumber text{fill:#eff;font-family:Verdana,sans-serif;font-size:12pt}</style> - <script - id="sozi-extras-media-script" - ns1:version="14.10-05142318">this.addEventListener("load",function(){var h="http://www.w3.org/2000/svg",l="http://sozi.baierouge.fr",s="http://www.w3.org/1999/xhtml",m=this,o=m.document,q=[],r,e,d,c,p,a,g,f,b;function n(i){i.stopPropagation()}function t(i,j,k){sozi.events.listen("sozi.player.framechange",function(u){var v=sozi.document.frames[u].id;if(v===j){i.play()}else{if(v===k){i.pause()}}})}q.push(o.getElementsByTagNameNS(l,"video"));q.push(o.getElementsByTagNameNS(l,"audio"));r=[];for(c=0;c<q.length;c+=1){for(e=0;e<q[c].length;e+=1){p=q[c][e].parentNode;b=o.createElementNS(s,"source");b.setAttribute("type",q[c][e].getAttributeNS(l,"type"));b.setAttribute("src",q[c][e].getAttributeNS(l,"src"));for(d=0;d<r.length;d+=1){if(r[d].rect===p){break}}if(d===r.length){p.setAttribute("visibility","hidden");f=o.createElementNS(s,q[c][e].localName);f.setAttribute("controls","controls");if(q[c][e].localName==="video"){f.setAttribute("width",p.getAttribute("width"));f.setAttribute("height",p.getAttribute("height"))}f.addEventListener("click",n,false);f.addEventListener("contextmenu",n,false);g=o.createElementNS(s,"html");g.appendChild(f);a=o.createElementNS(h,"foreignObject");a.setAttribute("x",p.getAttribute("x"));a.setAttribute("y",p.getAttribute("y"));a.setAttribute("width",p.getAttribute("width"));a.setAttribute("height",p.getAttribute("height"));a.appendChild(g);p.parentNode.insertBefore(a,p.nextSibling);if(q[c][e].hasAttributeNS(l,"start-frame")){t(f,q[c][e].getAttributeNS(l,"start-frame"),q[c][e].getAttributeNS(l,"stop-frame"))}r.push({rect:q[c][e].parentNode,htmlMedia:f})}r[d].htmlMedia.appendChild(b)}}},false);</script> - <ns1:frame - id="view10Frame" - ns1:transition-path-hide="true" - ns1:transition-profile="linear" - ns1:transition-zoom-percent="0.0" - ns1:transition-duration-ms="1000.0" - ns1:timeout-ms="5000.0" - ns1:timeout-enable="false" - ns1:show-in-frame-list="true" - ns1:clip="true" - ns1:hide="true" - ns1:sequence="2" - ns1:title="Persistent database object" - ns1:refid="group10" /> - <ns1:frame - ns1:refid="group20" - ns1:title="Copy to client side" - ns1:sequence="3" - ns1:hide="true" - ns1:clip="true" - ns1:show-in-frame-list="true" - ns1:timeout-enable="false" - ns1:timeout-ms="5000.0" - ns1:transition-duration-ms="1000.0" - ns1:transition-zoom-percent="0.0" - ns1:transition-profile="linear" - ns1:transition-path-hide="true" - id="view20Frame" /> - <ns1:frame - id="view30Frame" - ns1:transition-path-hide="true" - ns1:transition-profile="linear" - ns1:transition-zoom-percent="0.0" - ns1:transition-duration-ms="1000.0" - ns1:timeout-ms="5000.0" - ns1:timeout-enable="false" - ns1:show-in-frame-list="true" - ns1:clip="true" - ns1:hide="true" - ns1:sequence="4" - ns1:title="Modify on client side" - ns1:refid="group30" /> - <ns1:frame - ns1:refid="group40" - ns1:title="Re-read from database" - ns1:sequence="5" - ns1:hide="true" - ns1:clip="true" - ns1:show-in-frame-list="true" - ns1:timeout-enable="false" - ns1:timeout-ms="5000.0" - ns1:transition-duration-ms="1000.0" - ns1:transition-zoom-percent="0.0" - ns1:transition-profile="linear" - ns1:transition-path-hide="true" - id="view40Frame" /> - <ns1:frame - id="view50Frame" - ns1:transition-path-hide="true" - ns1:transition-profile="linear" - ns1:transition-zoom-percent="0.0" - ns1:transition-duration-ms="1000.0" - ns1:timeout-ms="5000.0" - ns1:timeout-enable="false" - ns1:show-in-frame-list="true" - ns1:clip="true" - ns1:hide="true" - ns1:sequence="6" - ns1:title="Commit or abort" - ns1:refid="group50" /> - <ns1:frame - id="view05Frame" - ns1:transition-path-hide="true" - ns1:transition-profile="linear" - ns1:transition-zoom-percent="0.0" - ns1:transition-duration-ms="1000.0" - ns1:timeout-ms="5000.0" - ns1:timeout-enable="false" - ns1:show-in-frame-list="true" - ns1:clip="true" - ns1:hide="true" - ns1:sequence="1" - ns1:title="Occ" - ns1:refid="group05" /> - <ns1:frame - id="group05Frame2" - ns1:transition-path-hide="true" - ns1:transition-profile="linear" - ns1:transition-zoom-percent="0.0" - ns1:transition-duration-ms="1000.0" - ns1:timeout-ms="5000.0" - ns1:timeout-enable="false" - ns1:show-in-frame-list="true" - ns1:clip="true" - ns1:hide="true" - ns1:sequence="7" - ns1:title="Occ" - ns1:refid="group05" /> -</svg> diff --git a/Doc/DbDevel/Ref/Fig/concurrentOptimisticFail.svg b/Doc/DbDevel/Ref/Fig/concurrentOptimisticFail.svg deleted file mode 100644 index 183527e9b..000000000 --- a/Doc/DbDevel/Ref/Fig/concurrentOptimisticFail.svg +++ /dev/null @@ -1,2076 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:ns1="http://sozi.baierouge.fr" - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - sodipodi:docname="concurrentOptimisticFail.svg" - inkscape:version="0.48.4 r9939" - version="1.2" - id="svg2" - height="418.78125" - width="536.09375"> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="2.1424092" - inkscape:cx="335.3683" - inkscape:cy="222.97191" - inkscape:document-units="mm" - inkscape:current-layer="layer1" - showgrid="true" - inkscape:window-width="1920" - inkscape:window-height="1176" - inkscape:window-x="0" - inkscape:window-y="24" - inkscape:window-maximized="1" - showguides="true" - inkscape:guide-bbox="true" - inkscape:snap-global="false" - objecttolerance="10000" - guidetolerance="10000" - units="mm" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0"> - <inkscape:grid - type="xygrid" - id="grid4604" - empspacing="5" - visible="true" - enabled="true" - snapvisiblegridlinesonly="true" - originx="-37.27414px" - originy="-243.20196px" /> - </sodipodi:namedview> - <defs - id="defs4"> - <marker - inkscape:stockid="DiamondMend" - orient="auto" - refY="0" - refX="0" - id="DiamondMend" - style="overflow:visible"> - <path - id="path4249" - d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 0,-7.0710768 z" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - transform="matrix(0.4,0,0,0.4,-2.6,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend"> - <path - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path4158" - inkscape:connector-curvature="0" /> - </marker> - <marker - inkscape:stockid="EmptyTriangleOutL" - orient="auto" - refY="0" - refX="0" - id="EmptyTriangleOutL" - style="overflow:visible"> - <path - id="path4309" - d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" - style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - transform="matrix(0.8,0,0,0.8,-4.8,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Lstart" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Lstart"> - <path - inkscape:connector-curvature="0" - transform="matrix(0.8,0,0,0.8,10,0)" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path3841" /> - </marker> - <marker - inkscape:stockid="SquareM" - orient="auto" - refY="0" - refX="0" - id="SquareM" - style="overflow:visible"> - <path - inkscape:connector-curvature="0" - id="path3914" - d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - transform="scale(0.4,0.4)" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Lend" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Lend"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.8,0,0,-0.8,-10,0)" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path3844" /> - </marker> - <marker - style="overflow:visible" - id="DiamondM" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="DiamondM"> - <path - inkscape:connector-curvature="0" - transform="scale(0.4,0.4)" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 0,-7.0710768 z" - id="path3923" /> - </marker> - <marker - style="overflow:visible" - id="DiamondMH" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="DiamondMH"> - <path - inkscape:connector-curvature="0" - transform="scale(0.4,0.4)" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 0,-7.0710768 z" - id="path4656" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1LendB" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1LendB"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.8,0,0,-0.8,-10,0)" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path4659" /> - </marker> - <marker - inkscape:stockid="SquareMU" - orient="auto" - refY="0" - refX="0" - id="SquareMU" - style="overflow:visible"> - <path - inkscape:connector-curvature="0" - id="path5221" - d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - transform="scale(0.4,0.4)" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Lend3" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Lend3"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.8,0,0,-0.8,-10,0)" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path5224" /> - </marker> - <marker - style="overflow:visible" - id="DiamondMo" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="DiamondMo"> - <path - inkscape:connector-curvature="0" - transform="scale(0.4,0.4)" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 0,-7.0710768 z" - id="path5799" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1LendO" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1LendO"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.8,0,0,-0.8,-10,0)" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path5802" /> - </marker> - <marker - style="overflow:visible" - id="DiamondM1" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="DiamondM1"> - <path - inkscape:connector-curvature="0" - transform="scale(0.4,0.4)" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 0,-7.0710768 z" - id="path6393" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1LendV" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1LendV"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.8,0,0,-0.8,-10,0)" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6396" /> - </marker> - <marker - inkscape:stockid="SquareMN" - orient="auto" - refY="0" - refX="0" - id="SquareMN" - style="overflow:visible"> - <path - inkscape:connector-curvature="0" - id="path7813" - d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - transform="scale(0.4,0.4)" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1LstartP" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1LstartP"> - <path - inkscape:connector-curvature="0" - transform="matrix(0.8,0,0,0.8,10,0)" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path7816" /> - </marker> - <marker - inkscape:stockid="SquareMb" - orient="auto" - refY="0" - refX="0" - id="SquareMb" - style="overflow:visible"> - <path - inkscape:connector-curvature="0" - id="path9491" - d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - transform="scale(0.4,0.4)" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1LendX" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1LendX"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.8,0,0,-0.8,-10,0)" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path9494" /> - </marker> - <marker - inkscape:stockid="SquareM8" - orient="auto" - refY="0" - refX="0" - id="SquareM8" - style="overflow:visible"> - <path - inkscape:connector-curvature="0" - id="path10143" - d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - transform="scale(0.4,0.4)" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1LendT" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1LendT"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.8,0,0,-0.8,-10,0)" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path10146" /> - </marker> - <marker - inkscape:stockid="SquareMNT" - orient="auto" - refY="0" - refX="0" - id="SquareMNT" - style="overflow:visible"> - <path - inkscape:connector-curvature="0" - id="path12195" - d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - transform="scale(0.4,0.4)" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1LstartPJ" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1LstartPJ"> - <path - inkscape:connector-curvature="0" - transform="matrix(0.8,0,0,0.8,10,0)" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path12198" /> - </marker> - <marker - inkscape:stockid="SquareMNTL" - orient="auto" - refY="0" - refX="0" - id="SquareMNTL" - style="overflow:visible"> - <path - inkscape:connector-curvature="0" - id="path12907" - d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - transform="scale(0.4,0.4)" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Lendx" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Lendx"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.8,0,0,-0.8,-10,0)" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path12910" /> - </marker> - <marker - style="overflow:visible" - id="DiamondMoY" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="DiamondMoY"> - <path - inkscape:connector-curvature="0" - transform="scale(0.4,0.4)" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - d="M 0,-7.0710768 -7.0710894,0 0,7.0710589 7.0710462,0 0,-7.0710768 z" - id="path13187" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1LendOe" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1LendOe"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.8,0,0,-0.8,-10,0)" - style="fill:#00ff00;fill-rule:evenodd;stroke:#00ff00;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path13190" /> - </marker> - <marker - inkscape:stockid="EmptyTriangleOutLt" - orient="auto" - refY="0" - refX="0" - id="EmptyTriangleOutLt" - style="overflow:visible"> - <path - id="path4692" - d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - transform="matrix(0.8,0,0,0.8,-4.8,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - inkscape:stockid="EmptyTriangleOutLt" - orient="auto" - refY="0" - refX="0" - id="EmptyTriangleOutLt-8" - style="overflow:visible"> - <path - id="path4692-6" - d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - transform="matrix(0.8,0,0,0.8,-4.8,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - inkscape:stockid="EmptyTriangleOutLt" - orient="auto" - refY="0" - refX="0" - id="EmptyTriangleOutLt-3" - style="overflow:visible"> - <path - id="path4692-7" - d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - transform="matrix(0.8,0,0,0.8,-4.8,0)" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1MendK" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1MendK"> - <path - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path5820" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mendw" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mendw"> - <path - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6591" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend6" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend6"> - <path - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6594" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend6-6" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend6"> - <path - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6594-3" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend6z" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend6z"> - <path - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6949" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend6z-8" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend6z"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6949-5" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend6z-3" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend6z"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6949-0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend6z-1" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend6z"> - <path - inkscape:connector-curvature="0" - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6949-1" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend6z-33" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend6z"> - <path - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6949-55" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend6z-39" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend6z"> - <path - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6949-559" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend6z-88" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend6z"> - <path - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6949-57" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend6-9" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend6"> - <path - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6594-5" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1MendK-6" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1MendK"> - <path - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path5820-7" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend6z-4" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend6z"> - <path - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6949-3" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend6z-6" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend6z"> - <path - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6949-06" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend6z-5" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend6z"> - <path - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6949-58" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend6z-16" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend6z"> - <path - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6949-6" - inkscape:connector-curvature="0" /> - </marker> - <marker - style="overflow:visible" - id="Arrow1Mend6z-45" - refX="0" - refY="0" - orient="auto" - inkscape:stockid="Arrow1Mend6z"> - <path - transform="matrix(-0.4,0,0,-0.4,-4,0)" - style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt" - d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" - id="path6949-9" - inkscape:connector-curvature="0" /> - </marker> - </defs> - <metadata - id="metadata7"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - transform="translate(-37.27414,-390.37897)" - id="layer1" - inkscape:groupmode="layer" - inkscape:label="Layer 1"> - <rect - y="417.87314" - x="349.56961" - height="199.09865" - width="75.529861" - id="rect6832-8-7" - style="fill:#f2f2f2;stroke:none" /> - <rect - y="418.67703" - x="220.14207" - height="198.29477" - width="60.255787" - id="rect6832-8" - style="fill:#f2f2f2;stroke:none" /> - <rect - y="542.20227" - x="470.04712" - height="219.77136" - width="59.100609" - id="view50-5" - style="fill:#f2f2f2;stroke:none" /> - <rect - transform="translate(0,502.36221)" - y="40" - x="125" - height="220" - width="90" - id="rect6832" - style="fill:#f2f2f2;stroke:none" /> - <text - transform="translate(0,308.2677)" - sodipodi:linespacing="125%" - id="text3004" - y="81.43441" - x="97.984795" - style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="81.43441" - x="97.984795" - id="tspan3006" - sodipodi:role="line" /></text> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - x="51.716835" - y="590.13226" - id="text4576" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan4578" - x="51.716835" - y="590.13226">Database</tspan></text> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - x="57.058464" - y="728.79333" - id="text4584" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - x="57.058464" - y="728.79333" - id="tspan4588">Client 1</tspan></text> - <g - id="g4179" - transform="translate(1,19.000027)"> - <text - sodipodi:linespacing="125%" - id="text4596" - y="563.36218" - x="144" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="563.36218" - x="144" - id="tspan4598" - sodipodi:role="line">Jim</tspan></text> - <text - sodipodi:linespacing="125%" - id="text4600" - y="579.36218" - x="145" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="579.36218" - x="145" - id="tspan4602" - sodipodi:role="line">37</tspan></text> - <rect - transform="translate(0,502.36221)" - y="50" - x="140" - height="30" - width="25" - id="rect4175" - style="fill:none;stroke:#000000" /> - <path - transform="translate(0,502.36221)" - inkscape:connector-curvature="0" - id="path4177" - d="m 140,65 25,0 0,0" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <g - transform="translate(116,159.00003)" - id="g4179-8"> - <text - sodipodi:linespacing="125%" - id="text4596-7" - y="563.36218" - x="144" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="563.36218" - x="144" - id="tspan4598-5" - sodipodi:role="line">Sid</tspan></text> - <text - sodipodi:linespacing="125%" - id="text4600-4" - y="579.36218" - x="145" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="579.36218" - x="145" - id="tspan4602-71" - sodipodi:role="line">37</tspan></text> - <rect - transform="translate(0,502.36221)" - y="50" - x="140" - height="30" - width="25" - id="rect4175-1" - style="fill:none;stroke:#000000" /> - <path - transform="translate(0,502.36221)" - inkscape:connector-curvature="0" - id="path4177-60" - d="m 140,65 25,0 0,0" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <g - transform="translate(1,159.00006)" - id="g4179-51"> - <text - sodipodi:linespacing="125%" - id="text4596-1" - y="563.36218" - x="144" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="563.36218" - x="144" - id="tspan4598-25" - sodipodi:role="line">Jim</tspan></text> - <text - sodipodi:linespacing="125%" - id="text4600-31" - y="579.36218" - x="145" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="579.36218" - x="145" - id="tspan4602-8" - sodipodi:role="line">37</tspan></text> - <rect - transform="translate(0,502.36221)" - y="50" - x="140" - height="30" - width="25" - id="rect4175-0" - style="fill:none;stroke:#000000" /> - <path - transform="translate(0,502.36221)" - inkscape:connector-curvature="0" - id="path4177-8" - d="m 140,65 25,0 0,0" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <g - transform="translate(338.00974,158.19616)" - id="g4179-8-6"> - <text - sodipodi:linespacing="125%" - id="text4596-7-8" - y="563.36218" - x="144" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="563.36218" - x="144" - id="tspan4598-5-3" - sodipodi:role="line">Sid</tspan></text> - <text - sodipodi:linespacing="125%" - id="text4600-4-2" - y="579.36218" - x="145" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="579.36218" - x="145" - id="tspan4602-71-7" - sodipodi:role="line">37</tspan></text> - <rect - transform="translate(0,502.36221)" - y="50" - x="140" - height="30" - width="25" - id="rect4175-1-0" - style="fill:none;stroke:#000000" /> - <path - transform="translate(0,502.36221)" - inkscape:connector-curvature="0" - id="path4177-60-8" - d="m 140,65 25,0 0,0" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - x="434.38489" - y="695.90057" - id="text3223" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan3225" - x="434.38489" - y="695.90057">not</tspan></text> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - x="428.35568" - y="711.52783" - id="text3227" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan3229" - x="428.35568" - y="711.52783">equal</tspan></text> - <path - sodipodi:nodetypes="cc" - style="fill:#ff0000;stroke:#ff0000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1MendK)" - d="m 458.72716,693.6655 21.97929,-5.67601" - id="path3231" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="cc" - style="fill:#ff0000;stroke:#ff0000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6)" - d="m 463.50182,711.70447 15.59684,18.87333" - id="path3231-0" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="cc" - style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" - d="m 165,717.36221 90,0" - id="path3231-0-2" - inkscape:connector-curvature="0" /> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - x="220" - y="732.36218" - id="text7197" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan7199" - x="220" - y="732.36218">edit</tspan></text> - <path - style="fill:none;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.99685039, 0.9992126;stroke-dashoffset:0" - d="m 45,135 440.8587,-0.40195" - id="path7201" - inkscape:connector-curvature="0" - transform="translate(0,502.36221)" - sodipodi:nodetypes="cc" /> - <path - sodipodi:nodetypes="cc" - style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" - d="m 490,598.34272 0,64.01949" - id="path3231-0-2-0" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="cc" - style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" - d="m 155,602.36221 0,105" - id="path3231-0-2-6" - inkscape:connector-curvature="0" /> - <g - id="g7293" - transform="translate(-104,-119.99997)"> - <text - sodipodi:linespacing="125%" - id="text7257" - y="777.36218" - x="250" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="777.36218" - x="250" - id="tspan7259" - sodipodi:role="line">r</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7261" - y="787.36218" - x="249" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="787.36218" - x="249" - id="tspan7263" - sodipodi:role="line">e</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7265" - y="797.36218" - x="249" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="797.36218" - x="249" - id="tspan7267" - sodipodi:role="line">a</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7269" - y="811.36218" - x="249" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="811.36218" - x="249" - id="tspan7271" - sodipodi:role="line">d</tspan></text> - </g> - <g - id="g7293-1" - transform="translate(246,-159.99997)"> - <text - sodipodi:linespacing="125%" - id="text7257-0" - y="777.36218" - x="250" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="777.36218" - x="250" - id="tspan7259-6" - sodipodi:role="line">r</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7261-0" - y="787.36218" - x="249" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="787.36218" - x="249" - id="tspan7263-7" - sodipodi:role="line">e</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7265-8" - y="797.36218" - x="249" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="797.36218" - x="249" - id="tspan7267-0" - sodipodi:role="line">a</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7269-7" - y="811.36218" - x="249" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="811.36218" - x="249" - id="tspan7271-3" - sodipodi:role="line">d</tspan></text> - </g> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - x="540.64636" - y="763.52502" - id="text7375" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan7377" - x="540.64636" - y="763.52502">Time</tspan></text> - <path - sodipodi:nodetypes="cc" - style="fill:none;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#DiamondMend);marker-end:url(#Arrow1Lend)" - d="m 119.60006,773.96791 448.14069,-0.99788" - id="path7379" - inkscape:connector-curvature="0" /> - <g - transform="translate(368.98903,-340.85261)" - id="group30"> - <rect - y="764.0553" - x="-142.33704" - height="187.11328" - width="197.42996" - id="view30" - style="fill:none;stroke:#0000ff;stroke-width:0.99921262;stroke-miterlimit:4;stroke-dasharray:none"> - <title - id="title4592">Client side change</title> - </rect> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Sans" - x="-140.96068" - y="944.93225" - id="text8123" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan8125" - x="-140.96068" - y="944.93225">30</tspan></text> - </g> - <g - id="g4179-9" - transform="translate(100.20207,19.313639)"> - <text - sodipodi:linespacing="125%" - id="text4596-54" - y="563.36218" - x="144" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="563.36218" - x="144" - id="tspan4598-7" - sodipodi:role="line">Jim</tspan></text> - <text - sodipodi:linespacing="125%" - id="text4600-9" - y="579.36218" - x="145" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="579.36218" - x="145" - id="tspan4602-5" - sodipodi:role="line">37</tspan></text> - <rect - transform="translate(0,502.36221)" - y="50" - x="140" - height="30" - width="25" - id="rect4175-56" - style="fill:none;stroke:#000000" /> - <path - transform="translate(0,502.36221)" - inkscape:connector-curvature="0" - id="path4177-3" - d="m 140,65 25,0 0,0" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <g - id="g4179-92" - transform="translate(256.14621,15.21178)"> - <text - sodipodi:linespacing="125%" - id="text4596-60" - y="564.81512" - x="141.5784" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="564.81512" - x="141.5784" - id="tspan4598-72" - sodipodi:role="line">Kim</tspan></text> - <text - sodipodi:linespacing="125%" - id="text4600-2" - y="579.36218" - x="145" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="579.36218" - x="145" - id="tspan4602-9" - sodipodi:role="line">38</tspan></text> - <rect - transform="translate(0,502.36221)" - y="50" - x="140" - height="30" - width="25" - id="rect4175-10" - style="fill:none;stroke:#000000" /> - <path - transform="translate(0,502.36221)" - inkscape:connector-curvature="0" - id="path4177-603" - d="m 140,65 25,0 0,0" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - x="46.346935" - y="436.62521" - id="text4584-8" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - x="46.346935" - y="436.62521" - id="tspan4588-5">Client 2</tspan></text> - <g - transform="translate(8.0389767,42.606576)" - id="g9512"> - <g - transform="translate(91.788679,-161.47396)" - id="g4179-9-6"> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - x="144" - y="563.36218" - id="text4596-54-5" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan4598-7-8" - x="144" - y="563.36218">Jim</tspan></text> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - x="145" - y="579.36218" - id="text4600-9-6" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan4602-5-2" - x="145" - y="579.36218">37</tspan></text> - <rect - style="fill:none;stroke:#000000" - id="rect4175-56-7" - width="25" - height="30" - x="140" - y="50" - transform="translate(0,502.36221)" /> - <path - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 140,65 25,0 0,0" - id="path4177-3-3" - inkscape:connector-curvature="0" - transform="translate(0,502.36221)" /> - </g> - </g> - <g - transform="translate(-6.4311811,41.802678)" - id="g9480"> - <text - sodipodi:linespacing="125%" - id="text4596-54-6" - y="402.79425" - x="314.40662" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="402.79425" - x="314.40662" - id="tspan4598-7-2" - sodipodi:role="line">Kim</tspan></text> - <text - sodipodi:linespacing="125%" - id="text4600-9-3" - y="418.04306" - x="318.28616" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="418.04306" - x="318.28616" - id="tspan4602-5-4" - sodipodi:role="line">37</tspan></text> - <rect - y="391.04309" - x="313.28616" - height="30" - width="25" - id="rect4175-56-0" - style="fill:none;stroke:#000000" /> - <path - inkscape:connector-curvature="0" - id="path4177-3-7" - d="m 313.28617,406.0431 25,0 0,0" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <path - sodipodi:nodetypes="cc" - style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" - d="m 252.81184,570.77087 0.76737,-104.10474" - id="path3231-0-2-20" - inkscape:connector-curvature="0" /> - <g - id="g7293-7" - transform="translate(-7.2565342,-287.73251)"> - <text - sodipodi:linespacing="125%" - id="text7257-3" - y="777.36218" - x="250" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="777.36218" - x="250" - id="tspan7259-3" - sodipodi:role="line">r</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7261-9" - y="787.36218" - x="249" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="787.36218" - x="249" - id="tspan7263-1" - sodipodi:role="line">e</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7265-4" - y="797.36218" - x="249" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="797.36218" - x="249" - id="tspan7267-2" - sodipodi:role="line">a</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7269-9" - y="811.36218" - x="249" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="811.36218" - x="249" - id="tspan7271-1" - sodipodi:role="line">d</tspan></text> - </g> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - x="270.72177" - y="445.92776" - id="text7197-1" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan7199-7" - x="270.72177" - y="445.92776">edit</tspan></text> - <path - sodipodi:nodetypes="cc" - style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" - d="m 265.1876,448.28729 39.35444,0" - id="path3231-0-2-8" - inkscape:connector-curvature="0" /> - <g - transform="translate(44.264561,41.842249)" - id="g9480-3"> - <text - sodipodi:linespacing="125%" - id="text4596-54-6-7" - y="402.79425" - x="314.40662" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="402.79425" - x="314.40662" - id="tspan4598-7-2-3" - sodipodi:role="line">Kim</tspan></text> - <text - sodipodi:linespacing="125%" - id="text4600-9-3-9" - y="418.04306" - x="318.28616" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="418.04306" - x="318.28616" - id="tspan4602-5-4-1" - sodipodi:role="line">37</tspan></text> - <rect - y="391.04309" - x="313.28616" - height="30" - width="25" - id="rect4175-56-0-3" - style="fill:none;stroke:#000000" /> - <path - inkscape:connector-curvature="0" - id="path4177-3-7-8" - d="m 313.28617,406.0431 25,0 0,0" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <g - id="g4179-9-68" - transform="translate(218.35463,15.577937)"> - <text - sodipodi:linespacing="125%" - id="text4596-54-3" - y="563.36218" - x="144" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="563.36218" - x="144" - id="tspan4598-7-1" - sodipodi:role="line">Jim</tspan></text> - <text - sodipodi:linespacing="125%" - id="text4600-9-0" - y="579.36218" - x="145" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="579.36218" - x="145" - id="tspan4602-5-5" - sodipodi:role="line">37</tspan></text> - <rect - transform="translate(0,502.36221)" - y="50" - x="140" - height="30" - width="25" - id="rect4175-56-8" - style="fill:none;stroke:#000000" /> - <path - transform="translate(0,502.36221)" - inkscape:connector-curvature="0" - id="path4177-3-5" - d="m 140,65 25,0 0,0" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <g - id="g4179-9-68-9" - transform="translate(217.95269,-77.272243)"> - <text - sodipodi:linespacing="125%" - id="text4596-54-3-9" - y="563.36218" - x="144" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="563.36218" - x="144" - id="tspan4598-7-1-8" - sodipodi:role="line">Jim</tspan></text> - <text - sodipodi:linespacing="125%" - id="text4600-9-0-5" - y="579.36218" - x="145" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="579.36218" - x="145" - id="tspan4602-5-5-1" - sodipodi:role="line">37</tspan></text> - <rect - transform="translate(0,502.36221)" - y="50" - x="140" - height="30" - width="25" - id="rect4175-56-8-7" - style="fill:none;stroke:#000000" /> - <path - transform="translate(0,502.36221)" - inkscape:connector-curvature="0" - id="path4177-3-5-6" - d="m 140,65 25,0 0,0" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <g - id="g7293-1-0" - transform="translate(111.31837,-251.55711)"> - <text - sodipodi:linespacing="125%" - id="text7257-0-0" - y="777.36218" - x="250" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="777.36218" - x="250" - id="tspan7259-6-5" - sodipodi:role="line">r</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7261-0-5" - y="787.36218" - x="249" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="787.36218" - x="249" - id="tspan7263-7-0" - sodipodi:role="line">e</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7265-8-2" - y="797.36218" - x="249" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="797.36218" - x="249" - id="tspan7267-0-3" - sodipodi:role="line">a</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7269-7-1" - y="811.36218" - x="249" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="811.36218" - x="249" - id="tspan7271-3-0" - sodipodi:role="line">d</tspan></text> - </g> - <path - sodipodi:nodetypes="cc" - style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" - d="m 371.73925,567.8398 -0.0365,-61.09622" - id="path3231-0-2-20-0" - inkscape:connector-curvature="0" /> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - x="304.20624" - y="482.57654" - id="text3223-9" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan3225-0" - x="304.20624" - y="482.57654">still</tspan></text> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - x="299.38284" - y="494.98822" - id="text3227-0" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan3229-6" - x="299.38284" - y="494.98822">equal</tspan></text> - <path - sodipodi:nodetypes="cc" - style="fill:#ff0000;stroke:#ff0000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1MendK)" - d="M 336.58747,479.13567 360.57651,460.5973" - id="path3231-05" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="cc" - style="fill:#ff0000;stroke:#ff0000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6)" - d="m 336.53875,491.54736 25.24361,6.01096" - id="path3231-0-5" - inkscape:connector-curvature="0" /> - <g - id="g4179-92-0" - transform="translate(255.33392,-119.07492)"> - <text - sodipodi:linespacing="125%" - id="text4596-60-4" - y="564.81512" - x="141.5784" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="564.81512" - x="141.5784" - id="tspan4598-72-0" - sodipodi:role="line">Kim</tspan></text> - <text - sodipodi:linespacing="125%" - id="text4600-2-1" - y="579.36218" - x="145" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="579.36218" - x="145" - id="tspan4602-9-3" - sodipodi:role="line">38</tspan></text> - <rect - transform="translate(0,502.36221)" - y="50" - x="140" - height="30" - width="25" - id="rect4175-10-8" - style="fill:none;stroke:#000000" /> - <path - transform="translate(0,502.36221)" - inkscape:connector-curvature="0" - id="path4177-603-3" - d="m 140,65 25,0 0,0" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <path - sodipodi:nodetypes="cc" - style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" - d="m 409.84366,464.14583 0.40195,101.78441" - id="path3231-0-2-6-1" - inkscape:connector-curvature="0" /> - <g - id="g7303-6" - transform="translate(107.76957,-300.04669)"> - <text - sodipodi:linespacing="125%" - id="text7273-5" - y="777.36218" - x="304" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="777.36218" - x="304" - id="tspan7275-4" - sodipodi:role="line">w</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7277-7" - y="787.36218" - x="307" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="787.36218" - x="307" - id="tspan7279-8" - sodipodi:role="line">r</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7281-2" - y="800.36218" - x="307" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="800.36218" - x="307" - id="tspan7283-5" - sodipodi:role="line">i</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7285-3" - y="811.36218" - x="307" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="811.36218" - x="307" - id="tspan7287-0" - sodipodi:role="line">t</tspan></text> - <text - sodipodi:linespacing="125%" - id="text7289-7" - y="821.36218" - x="306" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="821.36218" - x="306" - id="tspan7291-4" - sodipodi:role="line">e</tspan></text> - </g> - <g - id="g4179-92-6" - transform="translate(337.73342,15.577937)"> - <text - sodipodi:linespacing="125%" - id="text4596-60-2" - y="564.81512" - x="141.5784" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="564.81512" - x="141.5784" - id="tspan4598-72-8" - sodipodi:role="line">Kim</tspan></text> - <text - sodipodi:linespacing="125%" - id="text4600-2-6" - y="579.36218" - x="145" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="579.36218" - x="145" - id="tspan4602-9-2" - sodipodi:role="line">38</tspan></text> - <rect - transform="translate(0,502.36221)" - y="50" - x="140" - height="30" - width="25" - id="rect4175-10-5" - style="fill:none;stroke:#000000" /> - <path - transform="translate(0,502.36221)" - inkscape:connector-curvature="0" - id="path4177-603-6" - d="m 140,65 25,0 0,0" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <g - id="g4179-92-6-9" - transform="translate(337.73343,111.64371)"> - <text - sodipodi:linespacing="125%" - id="text4596-60-2-0" - y="564.81512" - x="141.5784" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="564.81512" - x="141.5784" - id="tspan4598-72-8-6" - sodipodi:role="line">Kim</tspan></text> - <text - sodipodi:linespacing="125%" - id="text4600-2-6-5" - y="579.36218" - x="145" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="579.36218" - x="145" - id="tspan4602-9-2-3" - sodipodi:role="line">38</tspan></text> - <rect - transform="translate(0,502.36221)" - y="50" - x="140" - height="30" - width="25" - id="rect4175-10-5-0" - style="fill:none;stroke:#000000" /> - <path - transform="translate(0,502.36221)" - inkscape:connector-curvature="0" - id="path4177-603-6-1" - d="m 140,65 25,0 0,0" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - </g> - <text - sodipodi:linespacing="125%" - id="text10060" - y="554.27484" - x="475.19913" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="554.27484" - x="475.19913" - id="tspan10062" - sodipodi:role="line">Rollback</tspan></text> - <path - style="fill:none;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.99685039, 0.9992126;stroke-dashoffset:0" - d="m 45.11468,532.49558 310.62728,-0.40195" - id="path7201-1" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.99685039, 0.9992126;stroke-dashoffset:0" - d="m 375.11467,532.09362 32.4787,-0.40195" - id="path7201-5" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.99685039, 0.9992126;stroke-dashoffset:0" - d="m 414.50565,532.09362 149.44581,0" - id="path7201-5-7" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3.99685039, 0.9992126;stroke-dashoffset:0" - d="m 505.54706,636.80129 61.01707,0" - id="path7201-5-7-5" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> - <g - transform="translate(-358.53836,-298.24603)" - id="group10"> - <rect - ry="0" - y="688.97858" - x="396.16928" - height="418.05881" - width="535.38202" - id="view10" - style="fill:none;stroke:#0000ff;stroke-width:0.70866144;stroke-miterlimit:4;stroke-dasharray:none" /> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Sans" - x="908.26019" - y="734.47485" - id="text10132" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan10134" - x="908.26019" - y="734.47485">10</tspan></text> - </g> - <g - transform="translate(495.67035,-201.51711)" - id="group40"> - <rect - ry="0" - y="760.83972" - x="-147.96432" - height="189.52496" - width="219.9391" - id="view30-3" - style="fill:none;stroke:#0000ff;stroke-width:0.99921262;stroke-miterlimit:4;stroke-dasharray:none"> - <title - id="title4592-2">Client side change</title> - </rect> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Sans" - x="-140.96068" - y="944.93225" - id="text8123-2" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan8125-2" - x="-140.96068" - y="944.93225">40</tspan></text> - </g> - <g - id="group20" - transform="translate(2.3062254,4.9968216)"> - <rect - style="fill:none;stroke:#0000ff;stroke-width:1.0629921;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" - id="rect15119" - width="233.31313" - height="209.09776" - x="49.192089" - y="562.08331" /> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Sans" - x="55.342022" - y="765.41553" - id="text15121" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan15123" - x="55.342022" - y="765.41553">20</tspan></text> - </g> - <text - sodipodi:linespacing="125%" - id="text3922" - y="409.10367" - x="271.74283" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="409.10367" - x="271.74283" - id="tspan3924" - sodipodi:role="line">Long transaction</tspan></text> - <path - transform="translate(37.27659,416.00309)" - inkscape:connector-curvature="0" - id="path3926" - d="M 183.18731,-24.142754 182.91552,5.4824942" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - inkscape:connector-curvature="0" - id="path3926-7" - d="m 426.07399,392.53982 -0.27179,29.62525" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cc" - style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" - d="m 275.95029,798.17759 -149.01838,-0.0137" - id="path3231-0-2-20-0-5" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="cc" - style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" - d="m 415.6607,798.50858 113.48769,-0.31162" - id="path3231-0-2-20-0-8" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="cc" - style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" - d="m 384.93054,404.84493 39.91682,0.0568" - id="path3231-0-2-20-0-3" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="cc" - style="fill:#000000;stroke:#000000;stroke-width:0.99921262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend6z)" - d="m 268.87567,404.57314 -46.51281,-0.21498" - id="path3231-0-2-20-0-9" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="cc" - inkscape:connector-curvature="0" - id="path3926-3" - d="m 124.68365,762.58463 0.65419,44.94976" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cc" - inkscape:connector-curvature="0" - id="path3926-39" - d="m 530.23246,762.37525 0.0262,45.64194" - style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <text - sodipodi:linespacing="125%" - id="text3922-7" - y="800.83777" - x="295.25751" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - xml:space="preserve"><tspan - y="800.83777" - x="295.25751" - id="tspan3924-5" - sodipodi:role="line">Long transaction</tspan></text> - <text - xml:space="preserve" - style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" - x="374.57156" - y="613.15881" - id="text6011" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan6013" - x="374.57156" - y="613.15881">Commit</tspan></text> - </g> - <script - id="sozi-script" - ns1:version="14.10-05142318">function namespace(b,d,a){var c=b;d.split(".").forEach(function(e){if(typeof c[e]==="undefined"){c[e]={}}c=c[e]});if(a){a(c,b)}return c}namespace(this,"sozi.events",function(b){var a={};b.listen=function(c,d){if(!a.hasOwnProperty(c)){a[c]=[]}a[c].push(d)};b.fire=function(d){var c=Array.prototype.slice.call(arguments,1);if(a.hasOwnProperty(d)){a[d].forEach(function(e){e.apply(null,c)})}}});namespace(this,"sozi.proto",function(a){a.Object={installConstructors:function(){function b(){}b.prototype=this;this.instance=function(){var c=new b();c.construct.apply(c,arguments);return c};this.subtype=function(d){var c=new b();c.augment(d);c.installConstructors();return c}},construct:function(){},augment:function(c){for(var b in c){if(c.hasOwnProperty(b)){this[b]=c[b]}}return this},bind:function(c){var b=this;return function(){return c.apply(b,arguments)}}};a.Object.installConstructors()});namespace(this,"sozi.actions",function(A,g){var u=namespace(g,"sozi.player");var v=namespace(g,"sozi.display");var n=g.document;var o=0;var w=1;var t=1.05;var y=5;var m=5;var r=false;var i=0;var h=0;function a(C,B,D){u.stop();v.viewPorts.player.zoom(C>0?t:1/t,B,D)}function x(B){u.stop();v.viewPorts.player.rotate(B>0?y:-y)}function s(){if(sozi.framelist.isVisible()){sozi.framelist.hide();u.restart()}else{u.stop();sozi.framelist.show()}}function d(B){return v.viewPorts.player.contains(B.clientX,B.clientY)}function f(B){if(!d(B)){return}if(B.button===o){n.documentElement.addEventListener("mousemove",q,false);r=false;i=B.clientX;h=B.clientY}else{if(B.button===w){s()}}B.stopPropagation();B.preventDefault()}function q(B){if(!d(B)){return}u.stop();if(!r&&(Math.abs(B.clientX-i)>m||Math.abs(B.clientY-h)>m)){r=true}if(r){sozi.events.fire("sozi.player.cleanup");v.viewPorts.player.drag(B.clientX-i,B.clientY-h);i=B.clientX;h=B.clientY}B.stopPropagation()}function c(B){if(!d(B)){return}if(B.button===o){n.documentElement.removeEventListener("mousemove",q,false)}B.stopPropagation();B.preventDefault()}function p(B){if(!d(B)){return}u.moveToPrevious();B.stopPropagation();B.preventDefault()}function e(B){if(!d(B)){return}if(!r&&B.button!==w){u.moveToNext()}B.stopPropagation();B.preventDefault()}function j(B){if(!d(B)){return}if(!B){B=g.event}var C=0;if(B.wheelDelta){C=B.wheelDelta}else{if(B.detail){C=-B.detail}}if(C!==0){if(B.shiftKey){x(C)}else{a(C,B.clientX,B.clientY)}}B.stopPropagation();B.preventDefault()}function l(B){if(B.altKey||B.ctrlKey||B.metaKey){return}switch(B.charCode||B.which){case 43:a(1,g.innerWidth/2,g.innerHeight/2);break;case 45:a(-1,g.innerWidth/2,g.innerHeight/2);break;case 61:u.moveToCurrent();break;case 70:case 102:u.showAll();break;case 84:case 116:s();break;case 82:x(-1);break;case 114:x(1);break;default:return}B.stopPropagation();B.preventDefault()}function b(B){if(B.altKey||B.ctrlKey||B.metaKey){return}switch(B.keyCode){case 36:if(B.shiftKey){u.jumpToFirst()}else{u.moveToFirst()}break;case 35:if(B.shiftKey){u.jumpToLast()}else{u.moveToLast()}break;case 38:case 33:case 37:if(B.shiftKey){u.jumpToPrevious()}else{u.moveToPrevious()}break;case 40:case 34:case 39:case 13:case 32:if(B.shiftKey){u.jumpToNext()}else{u.moveToNext()}break;default:return}B.stopPropagation();B.preventDefault()}function z(B){B.stopPropagation()}function k(){var C=n.getElementsByTagName("a");for(var D=0;D<C.length;D+=1){C[D].addEventListener("click",z,false);C[D].addEventListener("contextmenu",z,false)}var B=n.documentElement;B.addEventListener("click",e,false);B.addEventListener("mousedown",f,false);B.addEventListener("mouseup",c,false);B.addEventListener("contextmenu",p,false);B.addEventListener("DOMMouseScroll",j,false);g.onmousewheel=j;B.addEventListener("keypress",l,false);B.addEventListener("keydown",b,false)}sozi.events.listen("sozi.display.ready",k)});namespace(this,"sozi.animation",function(d,g){var h=g.mozRequestAnimationFrame||g.webkitRequestAnimationFrame||g.msRequestAnimationFrame||g.oRequestAnimationFrame;var k=function(){return g.performance&&g.performance.now?g.performance.now():Date.now()};d.setAnimationFrameHandlers=function(l,m){h=l;k=m};var i=40;var c;var j=[];function e(){if(j.length>0){if(h){h(e)}j.forEach(function(l){l.step(k())})}else{if(!h){g.clearInterval(c)}}}function b(){if(h){h(e)}else{c=g.setInterval(function(){e(k())},i)}}function a(l){j.push(l);if(j.length===1){b()}}function f(l){j.splice(j.indexOf(l),1)}d.Animator=sozi.proto.Object.subtype({construct:function(){this.durationMs=0;this.data=null;this.initialTime=0;this.started=false},start:function(l,m){this.durationMs=l;this.data=m;this.initialTime=k();this.onStep(0);if(!this.started){this.started=true;a(this)}},stop:function(){if(this.started){f(this);this.started=false}},step:function(m){var l=m-this.initialTime;if(l>=this.durationMs){this.stop();this.onStep(1);this.onDone()}else{this.onStep(l/this.durationMs)}},onStep:function(l){},onDone:function(){}});d.profiles={linear:function(l){return l},accelerate:function(l){return Math.pow(l,3)},"strong-accelerate":function(l){return Math.pow(l,5)},decelerate:function(l){return 1-Math.pow(1-l,3)},"strong-decelerate":function(l){return 1-Math.pow(1-l,5)},"accelerate-decelerate":function(l){var m=l<=0.5?l:1-l,n=Math.pow(2*m,3)/2;return l<=0.5?n:1-n},"strong-accelerate-decelerate":function(l){var m=l<=0.5?l:1-l,n=Math.pow(2*m,5)/2;return l<=0.5?n:1-n},"decelerate-accelerate":function(l){var m=l<=0.5?l:1-l,n=(1-Math.pow(1-2*m,2))/2;return l<=0.5?n:1-n},"strong-decelerate-accelerate":function(l){var m=l<=0.5?l:1-l,n=(1-Math.pow(1-2*m,3))/2;return l<=0.5?n:1-n},"immediate-beginning":function(l){return 1},"immediate-end":function(l){return l===1?1:0},"immediate-middle":function(l){return l>=0.5?1:0}}});namespace(this,"sozi.display",function(c,g){var f="http://www.w3.org/2000/svg";var b="http://www.w3.org/1999/xlink";var i=g.document;var k;var h;var j;c.viewPorts={};var e;c.CameraState=sozi.proto.Object.subtype({construct:function(){this.cx=this.cy=0;this.width=this.height=1;this.angle=0;this.clipped=true;this.transitionZoomPercent=0;this.transitionProfile=sozi.animation.profiles.linear;this.transitionPath=null},setCenter:function(l,m){this.cx=l;this.cy=m;return this},setSize:function(m,l){this.width=m;this.height=l;return this},setClipped:function(l){this.clipped=l;return this},setAngle:function(l){this.angle=(l+180)%360-180;return this},setRawAngle:function(l){this.angle=l;return this},setTransitionZoomPercent:function(l){this.transitionZoomPercent=l;return this},setTransitionProfile:function(l){this.transitionProfile=l;return this},setTransitionPath:function(l){this.transitionPath=l;return this},setAtElement:function(p){var s,o,t,m;if(p.nodeName==="rect"){s=p.x.baseVal.value;o=p.y.baseVal.value;t=p.width.baseVal.value;m=p.height.baseVal.value}else{var q=p.getBBox();s=q.x;o=q.y;t=q.width;m=q.height}var n=i.documentElement.createSVGPoint();n.x=s+t/2;n.y=o+m/2;var r=p.getCTM();n=n.matrixTransform(r);var l=Math.sqrt(r.a*r.a+r.b*r.b);return this.setCenter(n.x,n.y).setSize(t*l,m*l).setAngle(Math.atan2(r.b,r.a)*180/Math.PI)},setAtState:function(l){return this.setCenter(l.cx,l.cy).setSize(l.width,l.height).setAngle(l.angle).setClipped(l.clipped).setTransitionZoomPercent(l.transitionZoomPercent).setTransitionProfile(l.transitionProfile).setTransitionPath(l.transitionPath)},interpolatableAttributes:["width","height","angle"],interpolate:function(n,o,t,v,r){var p=1-t;for(var q=0;q<this.interpolatableAttributes.length;q+=1){var s=this.interpolatableAttributes[q];this[s]=o[s]*t+n[s]*p}var l=r?n.transitionPath:o.transitionPath;if(v&&l){var x=l.getTotalLength();if(r){var m=l.getPointAtLength(x);var u=l.getPointAtLength(0);var w=l.getPointAtLength(x*p)}else{var m=l.getPointAtLength(0);var u=l.getPointAtLength(x);var w=l.getPointAtLength(x*t)}this.cx=w.x+(o.cx-u.x)*t+(n.cx-m.x)*p;this.cy=w.y+(o.cy-u.y)*t+(n.cy-m.y)*p}else{this.cx=o.cx*t+n.cx*p;this.cy=o.cy*t+n.cy*p}}});c.Camera=c.CameraState.subtype({construct:function(n,o){c.CameraState.construct.call(this);this.viewPort=n;this.svgClipRect=i.createElementNS(f,"rect");var m=i.createElementNS(f,"clipPath");m.setAttribute("id","sozi-clip-path-"+n.id+"-"+o);m.appendChild(this.svgClipRect);n.svgGroup.appendChild(m);var l=i.createElementNS(f,"g");l.setAttribute("clip-path","url(#sozi-clip-path-"+n.id+"-"+o+")");n.svgGroup.appendChild(l);if(n.isPrimary){this.svgLayer=i.createElementNS(f,"g");this.svgLayer.appendChild(i.getElementById(o))}else{this.svgLayer=i.createElementNS(f,"use");this.svgLayer.setAttributeNS(b,"href","#"+o)}l.appendChild(this.svgLayer)},setAtState:function(l){return c.CameraState.setAtState.call(this,l).update()},getScale:function(){return Math.min(this.viewPort.width/this.width,this.viewPort.height/this.height)},rotate:function(l){return this.setAngle(this.angle+l).update()},zoom:function(m,l,n){return this.setSize(this.width/m,this.height/m).drag((1-m)*(l-this.viewPort.width/2),(1-m)*(n-this.viewPort.height/2))},drag:function(m,l){var q=this.getScale();var o=this.angle*Math.PI/180;var n=Math.sin(o);var p=Math.cos(o);return this.setCenter(this.cx-(m*p-l*n)/q,this.cy-(m*n+l*p)/q).setClipped(false).update()},update:function(){var q=this.getScale();var n=this.width*q;var m=this.height*q;var l=(this.viewPort.width-n)/2;var r=(this.viewPort.height-m)/2;this.svgClipRect.setAttribute("x",this.clipped?l:0);this.svgClipRect.setAttribute("y",this.clipped?r:0);this.svgClipRect.setAttribute("width",this.clipped?n:this.viewPort.width);this.svgClipRect.setAttribute("height",this.clipped?m:this.viewPort.height);var p=-this.cx+this.width/2+l/q;var o=-this.cy+this.height/2+r/q;this.svgLayer.setAttribute("transform","scale("+q+")translate("+p+","+o+")rotate("+(-this.angle)+","+this.cx+","+this.cy+")");return this}});c.ViewPort=sozi.proto.Object.subtype({construct:function(n,m,l){this.id=n;c.viewPorts[n]=this;this.isPrimary=!!l;if(this.isPrimary){if(e){throw"Failed to create a primary viewport. A primary viewport already exists."}else{e=this}}this.svgGroup=i.createElementNS(f,"g");this.svgGroup.setAttribute("class","sozi-viewport");this.svgGroup.setAttribute("id","sozi-viewport-"+n);i.documentElement.appendChild(this.svgGroup);this.setLocation(0,0).setSize(g.innerWidth,g.innerHeight);this.cameras={};m.forEach(function(o){this.cameras[o]=c.Camera.instance(this,o)},this)},setSize:function(m,l){this.width=m;this.height=l;return this},setLocation:function(l,m){this.x=l;this.y=m;return this},contains:function(l,m){return l>=this.x&&l<this.x+this.width&&m>=this.y&&m<this.y+this.height},getDocumentState:function(){var m=c.CameraState.instance().setCenter(k.x+k.width/2,k.y+k.height/2).setSize(k.width,k.height).setClipped(false);var l={};for(var n in this.cameras){l[n]=m}return l},update:function(){this.svgGroup.setAttribute("transform","translate("+this.x+","+this.y+")");for(var l in this.cameras){this.cameras[l].update()}return this},showFrame:function(l){for(var m in l.states){this.cameras[m].setAtState(l.states[m])}return this},drag:function(m,l){for(var n in this.cameras){this.cameras[n].drag(m,l)}return this},zoom:function(m,l,o){for(var n in this.cameras){this.cameras[n].zoom(m,l,o)}return this},rotate:function(l){for(var m in this.cameras){this.cameras[m].rotate(l)}return this},onWindowResize:function(m,l){this.setLocation(this.x*m,this.y*l).setSize(this.width*m,this.height*l).update()}});function d(){var l=i.documentElement;k=l.getBBox();h=g.innerWidth;j=g.innerHeight;l.setAttribute("width",h);l.setAttribute("height",j);sozi.events.fire("sozi.display.ready")}function a(){var l=i.documentElement;l.setAttribute("width",g.innerWidth);l.setAttribute("height",g.innerHeight);for(var m in c.viewPorts){c.viewPorts[m].onWindowResize(g.innerWidth/h,g.innerHeight/j)}h=g.innerWidth;j=g.innerHeight}sozi.events.listen("sozi.document.ready",d);g.addEventListener("resize",a,false)});namespace(this,"sozi.document",function(c,e){var g=e.document;var b="http://sozi.baierouge.fr";var d={title:"Untitled",sequence:"0",hide:"true",clip:"true","show-in-frame-list":"true","timeout-enable":"false","timeout-ms":"5000","transition-duration-ms":"1000","transition-zoom-percent":"0","transition-profile":"linear","transition-path-hide":"true"};var h=["g","image","path","rect","circle","ellipse","line","polyline","polygon","text","clippath"];c.frames=[];c.idLayerList=[];function j(l,k){return l.getAttributeNS(b,k)||d[k]}function i(o,p,k){var l=o.states[p]=o.states[p]||sozi.display.CameraState.instance();if(typeof l.transitionZoomPercent==="undefined"||k.hasAttributeNS(b,"transition-zoom-percent")){l.setTransitionZoomPercent(parseInt(j(k,"transition-zoom-percent"),10))}if(typeof l.transitionProfile==="undefined"||k.hasAttributeNS(b,"transition-profile")){l.setTransitionProfile(sozi.animation.profiles[j(k,"transition-profile")])}if(typeof l.transitionPath==="undefined"||k.hasAttributeNS(b,"transition-path")){var n=g.getElementById(k.getAttributeNS(b,"transition-path"));if(n&&n.nodeName==="path"){l.setTransitionPath(n);if(j(k,"transition-path-hide")==="true"){n.style.visibility="hidden"}}}if(k.hasAttributeNS(b,"refid")){var m=g.getElementById(k.getAttributeNS(b,"refid"));if(m){l.setAtElement(m);if(j(k,"hide")==="true"){m.style.visibility="hidden"}}}if(k.hasAttributeNS(b,"clip")){l.setClipped(j(k,"clip")==="true")}}function a(){var l=[];var p=g.getElementsByTagNameNS(b,"layer");for(var n=0;n<p.length;n+=1){var s=p[n].getAttributeNS(b,"group");if(s&&l.indexOf(s)===-1){l.push(s)}}var r=g.documentElement;var o="http://www.w3.org/2000/svg";var q=g.createElementNS(o,"g");var k=Array.prototype.slice.call(r.childNodes);k.forEach(function(u,t){if(!u.getAttribute){r.removeChild(u)}else{if(l.indexOf(u.getAttribute("id"))!==-1){if(q.firstChild){q.setAttribute("id","sozi-wrapper-"+t);c.idLayerList.push("sozi-wrapper-"+t);r.insertBefore(q,u);q=g.createElementNS(o,"g")}c.idLayerList.push(u.getAttribute("id"))}else{if(h.indexOf(u.localName.toLowerCase())!==-1){r.removeChild(u);q.appendChild(u)}}}});if(q.firstChild){q.setAttribute("id","sozi-wrapper-"+k.length);c.idLayerList.push("sozi-wrapper-"+k.length);r.appendChild(q)}var m=Array.prototype.slice.call(g.getElementsByTagNameNS(b,"frame"));m.sort(function(u,t){var w=parseInt(j(u,"sequence"),10);var v=parseInt(j(t,"sequence"),10);return w-v});m.forEach(function(v,u){var x={id:v.getAttribute("id"),title:j(v,"title"),showInFrameList:j(v,"show-in-frame-list")==="true",sequence:parseInt(j(v,"sequence"),10),timeoutEnable:j(v,"timeout-enable")==="true",timeoutMs:parseInt(j(v,"timeout-ms"),10),transitionDurationMs:parseInt(j(v,"transition-duration-ms"),10),states:{}};c.idLayerList.forEach(function(A){if(u===0||A.search("sozi-wrapper-[0-9]+")!==-1){i(x,A,v)}else{var z=x.states[A]=sozi.display.CameraState.instance();var y=c.frames[c.frames.length-1].states[A];z.setAtState(y)}});var t=Array.prototype.slice.call(v.getElementsByTagNameNS(b,"layer"));t.forEach(function(y){var z=y.getAttributeNS(b,"group");if(z&&c.idLayerList.indexOf(z)!==-1){i(x,z,y)}});for(var w in x.states){if(x.states.hasOwnProperty(w)){c.frames.push(x);break}}})}c.getFrameIndexForId=function(l){for(var k=0;k<c.frames.length;k+=1){if(c.frames[k].id===l){return k}}return -1};function f(){g.documentElement.removeAttribute("viewBox");a();sozi.events.fire("sozi.document.ready")}e.addEventListener("load",f,false)});namespace(this,"sozi.framelist",function(u,k){var o=k.document;var c=5;var i;var p;var j=0;var h;var s;var b;var v;var w;var t;var e=300;var f="decelerate";var a="http://www.w3.org/2000/svg";function n(z){var x=z.relatedTarget,y=o.documentElement;while(x&&x!==i&&x!==y){x=x.parentNode}if(x!==i){u.hide();sozi.player.restart();z.stopPropagation()}}function r(y){var x=p.getCTM().f;if(x<=-k.innerHeight/2){x+=k.innerHeight/2}else{if(x<0){x=0}}p.setAttribute("transform","translate(0,"+x+")");y.stopPropagation()}function d(y){var x=p.getCTM().f;if(x+j>=k.innerHeight*3/2){x-=k.innerHeight/2}else{if(x+j>k.innerHeight+2*c){x=k.innerHeight-j-4*c}}p.setAttribute("transform","translate(0,"+x+")");y.stopPropagation()}function g(x){return function(y){sozi.player.previewFrame(x);y.stopPropagation()}}function l(x){x.stopPropagation()}function q(){i=o.createElementNS(a,"g");i.setAttribute("id","sozi-toc");o.documentElement.appendChild(i);p=o.createElementNS(a,"g");i.appendChild(p);var y=o.createElementNS(a,"rect");y.setAttribute("id","sozi-toc-background");y.setAttribute("x",c);y.setAttribute("y",c);y.setAttribute("rx",c);y.setAttribute("ry",c);y.addEventListener("click",l,false);y.addEventListener("mousedown",l,false);y.addEventListener("mouseout",n,false);p.appendChild(y);var A=0;sozi.document.frames.forEach(function(D,E){if(D.showInFrameList){var C=o.createElementNS(a,"text");C.appendChild(o.createTextNode(D.title));C.setAttribute("id","sozi-toc-"+D.id);p.appendChild(C);if(E===sozi.player.currentFrameIndex){C.setAttribute("class","sozi-toc-current")}var B=C.getBBox().width;j+=C.getBBox().height;if(B>A){A=B}C.setAttribute("x",2*c);C.setAttribute("y",j+c);C.addEventListener("click",g(E),false);C.addEventListener("mousedown",l,false)}});var x=o.createElementNS(a,"path");x.setAttribute("class","sozi-toc-arrow");x.setAttribute("d","M"+(A+3*c)+","+(5*c)+" l"+(4*c)+",0 l-"+(2*c)+",-"+(3*c)+" z");x.addEventListener("click",r,false);x.addEventListener("mousedown",l,false);i.appendChild(x);var z=o.createElementNS(a,"path");z.setAttribute("class","sozi-toc-arrow");z.setAttribute("d","M"+(A+3*c)+","+(7*c)+" l"+(4*c)+",0 l-"+(2*c)+","+(3*c)+" z");z.addEventListener("click",d,false);z.addEventListener("mousedown",l,false);i.appendChild(z);y.setAttribute("width",A+7*c);y.setAttribute("height",j+2*c);h=-A-9*c;s=0;w=v=h;i.setAttribute("transform","translate("+h+",0)");t=sozi.animation.Animator.instance().augment({onStep:function(B){var D=sozi.animation.profiles[f](B),C=1-D;w=v*D+b*C;i.setAttribute("transform","translate("+w+",0)")}})}function m(x){var y=Array.prototype.slice.call(o.getElementsByClassName("sozi-toc-current"));y.forEach(function(A){A.removeAttribute("class")});var z=sozi.document.frames[x];if(z.showInFrameList){o.getElementById("sozi-toc-"+z.id).setAttribute("class","sozi-toc-current")}}u.show=function(){o.documentElement.appendChild(i);b=w;v=s;t.start(e)};u.hide=function(){b=w;v=h;t.start(e)};u.isVisible=function(){return v===s};sozi.events.listen("sozi.player.ready",q);sozi.events.listen("sozi.player.cleanup",u.hide);sozi.events.listen("sozi.player.framechange",m)});namespace(this,"sozi.framenumber",function(a,d){var g=d.document;var e;var k,i;var f;var b="http://www.w3.org/2000/svg";function h(){var m=k.getBBox(),n=Math.max(m.width,m.height)*0.75,l=n*1.25;f.setAttribute("r",n);e.setAttribute("transform","translate("+l+","+l+")")}function c(){e=g.createElementNS(b,"g");k=g.createElementNS(b,"text");f=g.createElementNS(b,"circle");e.setAttribute("id","sozi-framenumber");f.setAttribute("cx",0);f.setAttribute("cy",0);e.appendChild(f);i=g.createTextNode(sozi.player.currentFrameIndex+1);k.setAttribute("text-anchor","middle");k.setAttribute("dominant-baseline","central");k.setAttribute("x",0);k.setAttribute("y",0);k.appendChild(i);e.appendChild(k);g.documentElement.appendChild(e);h()}function j(l){i.nodeValue=l+1}sozi.events.listen("sozi.player.ready",c);sozi.events.listen("sozi.player.framechange",j)});namespace(this,"sozi.links",function(c,e){var b="http://www.w3.org/2000/svg";var a="http://www.w3.org/1999/xlink";function f(g){return function(h){sozi.player.moveToFrame(g);h.preventDefault();h.stopPropagation()}}function d(){var h=e.document.getElementsByTagNameNS(b,"a");for(var j=0;j<h.length;j+=1){var g=h[j].getAttributeNS(a,"href");if(g&&g[0]==="#"){h[j].addEventListener("click",f(sozi.location.getFrameIndexForHash(g)),false)}}}sozi.events.listen("sozi.document.ready",d)});namespace(this,"sozi.location",function(a,d){var b=false;a.getFrameIndex=function(){return a.getFrameIndexForHash(d.location.hash)};a.getFrameIndexForHash=function(g){var h=g?g.slice(1):"1";var f;if(/^[0-9]+$/.test(h)){f=parseInt(h,10)-1}else{f=sozi.document.getFrameIndexForId(h)}if(f<0){return 0}else{if(f>=sozi.document.frames.length){return sozi.document.frames.length-1}else{return f}}};function e(){var f=a.getFrameIndex();if(!b){sozi.player.moveToFrame(f)}b=false}function c(f){b=true;d.location.hash="#"+sozi.document.frames[f].id}d.addEventListener("hashchange",e,false);sozi.events.listen("sozi.player.framechange",c)});namespace(this,"sozi.player",function(d,g){var l;var c;var i;var e=500;var n=-10;var j="linear";var f=0;d.currentFrameIndex=0;var k=false;var m=false;function h(){if(sozi.document.frames[d.currentFrameIndex].timeoutEnable){m=true;var o=(d.currentFrameIndex+1)%sozi.document.frames.length;i=g.setTimeout(function(){d.moveToFrame(o)},sozi.document.frames[d.currentFrameIndex].timeoutMs)}}d.startFromIndex=function(o){k=true;m=false;f=o;d.currentFrameIndex=o;l.showFrame(sozi.document.frames[o]);h()};d.restart=function(){d.startFromIndex(d.currentFrameIndex)};d.stop=function(){c.stop();if(m){g.clearTimeout(i);m=false}k=false;f=d.currentFrameIndex};function b(o,y,w){var z={ss:((o<0)?Math.max(y,w):Math.min(y,w))*(100-o)/100,ts:0.5,k:0};if(o!==0){var s=y-w;var r=y-z.ss;var q=w-z.ss;if(s!==0){var p=Math.sqrt(r*q);var x=(r-p)/s;var t=(r+p)/s;z.ts=(x>0&&x<=1)?x:t}z.k=r/z.ts/z.ts}return z}d.jumpToFrame=function(o){d.stop();sozi.events.fire("sozi.player.cleanup");f=o;d.currentFrameIndex=o;l.showFrame(sozi.document.frames[o]);sozi.events.fire("sozi.player.framechange",o)};d.getAnimationData=function(o,q,s,p,v,t){var r={};for(var w in o){r[w]={initialState:sozi.display.CameraState.instance(),finalState:sozi.display.CameraState.instance(),useTransitionPath:v,reverseTransitionPath:t};r[w].profile=p||q[w].transitionProfile;r[w].initialState.setAtState(o[w]);if(q.hasOwnProperty(w)){r[w].finalState.setAtState(q[w])}else{r[w].finalState.setAtState(o[w])}if(r[w].finalState.angle-r[w].initialState.angle>180){r[w].finalState.setRawAngle(r[w].finalState.angle-360)}else{if(r[w].finalState.angle-r[w].initialState.angle<-180){r[w].initialState.setRawAngle(r[w].initialState.angle-360)}}var u=s||q[w].transitionZoomPercent;if(u&&q.hasOwnProperty(w)){r[w].zoomWidth=b(u,o[w].width,q[w].width);r[w].zoomHeight=b(u,o[w].height,q[w].height)}}return r};d.previewFrame=function(o){d.currentFrameIndex=o;c.start(e,d.getAnimationData(l.cameras,sozi.document.frames[o].states,n,sozi.animation.profiles[j]),false,false);sozi.events.fire("sozi.player.framechange",o)};d.moveToFrame=function(r){if(m){g.clearTimeout(i);m=false}var q,t,s,p,o;if(r===(d.currentFrameIndex-1)%sozi.document.frames.length){q=sozi.document.frames[d.currentFrameIndex].transitionDurationMs;t=undefined;s=undefined;p=true;o=true}else{if(r===(d.currentFrameIndex+1)%sozi.document.frames.length){q=sozi.document.frames[r].transitionDurationMs;t=undefined;s=undefined;p=true;o=false}else{q=e;t=n;s=sozi.animation.profiles[j];p=false;o=false}}sozi.events.fire("sozi.player.cleanup");k=true;d.currentFrameIndex=r;c.start(q,d.getAnimationData(l.cameras,sozi.document.frames[r].states,t,s,p,o));sozi.events.fire("sozi.player.framechange",r)};d.jumpToFirst=function(){d.jumpToFrame(0)};d.moveToFirst=function(){d.moveToFrame(0)};d.jumpToPrevious=function(){var o=d.currentFrameIndex;if(!c.started||f<=d.currentFrameIndex){o-=1}if(o>=0){d.jumpToFrame(o)}};d.moveToPrevious=function(){for(var o=d.currentFrameIndex-1;o>=0;o-=1){var p=sozi.document.frames[o];if(!p.timeoutEnable||p.timeoutMs!==0){d.moveToFrame(o);break}}};d.jumpToNext=function(){var o=d.currentFrameIndex;if(!c.started||f>=d.currentFrameIndex){o+=1}if(o<sozi.document.frames.length){d.jumpToFrame(o)}};d.moveToNext=function(){if(d.currentFrameIndex<sozi.document.frames.length-1||sozi.document.frames[d.currentFrameIndex].timeoutEnable){d.moveToFrame((d.currentFrameIndex+1)%sozi.document.frames.length)}};d.jumpToLast=function(){d.jumpToFrame(sozi.document.frames.length-1)};d.moveToLast=function(){d.moveToFrame(sozi.document.frames.length-1)};d.moveToCurrent=function(){d.moveToFrame(d.currentFrameIndex)};d.showAll=function(){d.stop();sozi.events.fire("sozi.player.cleanup");c.start(e,d.getAnimationData(l.cameras,l.getDocumentState(),n,sozi.animation.profiles[j],false,false))};function a(){l=sozi.display.ViewPort.instance("player",sozi.document.idLayerList,true);d.startFromIndex(sozi.location.getFrameIndex());g.setTimeout(l.bind(l.update),1);sozi.events.fire("sozi.player.ready")}d.onAnimationStep=function(o,q){for(var s in q){var p=l.cameras[s];p.interpolate(q[s].initialState,q[s].finalState,q[s].profile(o),q[s].useTransitionPath,q[s].reverseTransitionPath);var r;if(q[s].zoomWidth&&q[s].zoomWidth.k!==0){r=o-q[s].zoomWidth.ts;p.width=q[s].zoomWidth.k*r*r+q[s].zoomWidth.ss}if(q[s].zoomHeight&&q[s].zoomHeight.k!==0){r=o-q[s].zoomHeight.ts;p.height=q[s].zoomHeight.k*r*r+q[s].zoomHeight.ss}p.setClipped(q[s].finalState.clipped)}l.update()};c=sozi.animation.Animator.instance().augment({onStep:function(o){d.onAnimationStep(o,this.data)},onDone:function(){for(var o in this.data){l.cameras[o].setAtState(this.data[o].finalState)}l.update();f=d.currentFrameIndex;if(k){h()}}});sozi.events.listen("sozi.display.ready",a)});</script> - <style - id="sozi-style" - ns1:version="14.10-05142318">#sozi-toc text{fill:#eff;font-family:Verdana,sans-serif;font-size:12pt}#sozi-toc text:hover{fill:#0cf;cursor:pointer}#sozi-toc text.sozi-toc-current{fill:#fa4}#sozi-toc-background{stroke:#222;stroke-opacity:.1;stroke-width:10;fill:#222;fill-opacity:.9}.sozi-toc-arrow{fill:#eff;fill-opacity:.75;stroke:none}.sozi-toc-arrow:hover{fill:#0cf}#sozi-framenumber circle{stroke:#222;stroke-opacity:.1;stroke-width:4;fill:#222;fill-opacity:.9}#sozi-framenumber text{fill:#eff;font-family:Verdana,sans-serif;font-size:12pt}</style> - <script - id="sozi-extras-media-script" - ns1:version="14.10-05142318">this.addEventListener("load",function(){var h="http://www.w3.org/2000/svg",l="http://sozi.baierouge.fr",s="http://www.w3.org/1999/xhtml",m=this,o=m.document,q=[],r,e,d,c,p,a,g,f,b;function n(i){i.stopPropagation()}function t(i,j,k){sozi.events.listen("sozi.player.framechange",function(u){var v=sozi.document.frames[u].id;if(v===j){i.play()}else{if(v===k){i.pause()}}})}q.push(o.getElementsByTagNameNS(l,"video"));q.push(o.getElementsByTagNameNS(l,"audio"));r=[];for(c=0;c<q.length;c+=1){for(e=0;e<q[c].length;e+=1){p=q[c][e].parentNode;b=o.createElementNS(s,"source");b.setAttribute("type",q[c][e].getAttributeNS(l,"type"));b.setAttribute("src",q[c][e].getAttributeNS(l,"src"));for(d=0;d<r.length;d+=1){if(r[d].rect===p){break}}if(d===r.length){p.setAttribute("visibility","hidden");f=o.createElementNS(s,q[c][e].localName);f.setAttribute("controls","controls");if(q[c][e].localName==="video"){f.setAttribute("width",p.getAttribute("width"));f.setAttribute("height",p.getAttribute("height"))}f.addEventListener("click",n,false);f.addEventListener("contextmenu",n,false);g=o.createElementNS(s,"html");g.appendChild(f);a=o.createElementNS(h,"foreignObject");a.setAttribute("x",p.getAttribute("x"));a.setAttribute("y",p.getAttribute("y"));a.setAttribute("width",p.getAttribute("width"));a.setAttribute("height",p.getAttribute("height"));a.appendChild(g);p.parentNode.insertBefore(a,p.nextSibling);if(q[c][e].hasAttributeNS(l,"start-frame")){t(f,q[c][e].getAttributeNS(l,"start-frame"),q[c][e].getAttributeNS(l,"stop-frame"))}r.push({rect:q[c][e].parentNode,htmlMedia:f})}r[d].htmlMedia.appendChild(b)}}},false);</script> - <ns1:frame - ns1:transition-path-hide="true" - ns1:transition-profile="linear" - ns1:transition-zoom-percent="0.0" - ns1:transition-duration-ms="1000.0" - ns1:timeout-ms="5000.0" - ns1:timeout-enable="false" - ns1:show-in-frame-list="true" - ns1:clip="true" - ns1:hide="true" - ns1:sequence="1" - ns1:title="Overview 1" - ns1:refid="group10" /> - <ns1:frame - ns1:refid="group20" - ns1:title="Client 1 read" - ns1:sequence="2" - ns1:hide="true" - ns1:clip="true" - ns1:show-in-frame-list="true" - ns1:timeout-enable="false" - ns1:timeout-ms="5000.0" - ns1:transition-duration-ms="1000.0" - ns1:transition-zoom-percent="0.0" - ns1:transition-profile="linear" - ns1:transition-path-hide="true" /> - <ns1:frame - ns1:transition-path-hide="true" - ns1:transition-profile="linear" - ns1:transition-zoom-percent="0.0" - ns1:transition-duration-ms="1000.0" - ns1:timeout-ms="5000.0" - ns1:timeout-enable="false" - ns1:show-in-frame-list="true" - ns1:clip="true" - ns1:hide="true" - ns1:sequence="3" - ns1:title="Modify Client 2" - ns1:refid="group30" /> - <ns1:frame - ns1:refid="group40" - ns1:title="Re-read Client 1 and rollback" - ns1:sequence="4" - ns1:hide="true" - ns1:clip="true" - ns1:show-in-frame-list="true" - ns1:timeout-enable="false" - ns1:timeout-ms="5000.0" - ns1:transition-duration-ms="1000.0" - ns1:transition-zoom-percent="0.0" - ns1:transition-profile="linear" - ns1:transition-path-hide="true" /> - <ns1:frame - ns1:transition-path-hide="true" - ns1:transition-profile="linear" - ns1:transition-zoom-percent="0.0" - ns1:transition-duration-ms="1000.0" - ns1:timeout-ms="5000.0" - ns1:timeout-enable="false" - ns1:show-in-frame-list="true" - ns1:clip="true" - ns1:hide="true" - ns1:sequence="5" - ns1:title="Overview 2" - ns1:refid="group10" /> -</svg> diff --git a/Doc/DbDevel/Ref/Screen/accountTransferSum.png b/Doc/DbDevel/Ref/Screen/accountTransferSum.png deleted file mode 100644 index d38f3427bbeb8a7e1025f17ff82eef3cbf042276..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30650 zcmagG1yCGOw>8=XPk>;--6gn$L4s>=cL?t8uEE`%0Kql5OM(O$g1ZF>?(To*yZ6?8 zuj<wNr(n9K=X9UbXYalCTDwnAgrdA8>T816005v$ONl81z$<?MfT2Qq1@4)M>466~ zu+AdVsz^vkOB)L7;74>9aZMK$dovgJ&rYU*iiN9-i>Z@w&~Ib_AOobugjGEj4|Cjo zRMqZZ@|=%5r>4Bg$s@=oQ&!;#Dc<KZ<A~{rsbjdCx<5ti7F43X!BEspbG7AEQtA${ z7RSLz(T9spjt_|^NgOq~U-pKc#PM-tn3yF7BnON?h-W~Yp`Gr~oE<;tMYhEAWz7jp z00%S>b|>3e@x>S=;KMgq#H+kw8({r`)MK6S)OYbvkBmHV`qkGdjIAKifRMX@5CyWp zlZYGmvu_yo6y#z89XIggLP*p=h@wpReW13GoW=;ou^_rqm7LrbjN1URhv24u`zF&= z)@ak7vZxM)AnL^yku82J-eG3^)bPqcQlJo>@l7Yqb3F!tu11N>*qP1c`}3)3*p~&u z$+2gqzG%`jc64fk$Ng*;UvJ@e^e_`TGN$vI!~T1%+5Q{3Um?yjG{^v=d;ogQttS>T zs|=mPK!CDHfHN7eT#+t>^f?>DfF3%X<S+nHa)yNqFSjZrk}_<EoL>A@|K<50cB!#M zPQdOIn>E_qmLb(=`4-ux{N8r?hVv93n>NG&?V0BL+;Jc*dR+!z#WQNMJ~Y64jT397 zxOx35S|{9&0~XELcB7k{J3HY5L2$F!G3ky=Lj%*nL?jbsa;MwN866<YMi&WZ$Sg;} z5`k<0zo~jc(78&i8ifLGbv0l02&Fia5d}C5ydou*6==7rjedB;{jm6qp4weGo@G}e zYc&13_130cPl=gCKEanl{1InsN^Ny?-?z#UngxdkAZ-}E*}KvyW9VFUf%4chxABuv ztW;93$a;BRpu6CWZR7Qc@Y=94jMl_8{1Lb?+n@os#17x^IOmx<8Dv8gzxYb3i_b9j z=-;GQOuos!eUFc1zFhLFT<}Q4^v{%7AB57c-E{fD9u^Ub9G@yN{KJ}oJ1t?&gL9Oz zD3EvMvRFC}a&rxXA=1*!5gtziqaH`u^yjLa+=2^pMdYh*W|g*uiWsk=C%Kq{gH#fl z?bt1$5U*Giq=-K8G-kWDv%^Z_&y;Zi1KUO*d!-dCx=4U>HvqfQgRHnn)zbq*r<9`y z?Zo$CGdFNfzwJUb&#ri7Q^ipE@iL~Wc-JM!87U~6d*J6`h@D1OqSG`p^$arFWq`PS z6pyBt76;6=S5IK9li?};E8Z`@Pf~sus7v3l-*+5g=_Q+OJvO-LjPKy;p)q~Y=IYPr z6zJ|kGwgP+;Oz;yr5F!Emk&^^$x(hC4f|C{$oErt^IN=E1G0_=C5g?b(3WwG>vAU* zMU<AoBf2NM(9R}J^iuf><h@-=B&Q~axjeen$GlyrM)4&+ixlsxhEO1i{EOCIQ5xF- z!N}IIZ)D?nHvbjWTNn<qR_%OyEB~gHO<L+uT#jCd4%i7%e%%96gn2Zs!Go1S`kL*$ z9*tf;P&<>#O77PW|MCdu@7?Gz)xDC+AdUG>+_8Oyi2%z&1<A?nYqC`%!AOKJz;D}A zwGW^oAqhvxb+!h=m_yT-_IRJ)HET#0l+IY!F<@+EQ?x6zMs-mrEhsMn6#I1W146`Z z@IrxX^2p>?rx_Ue*$(UF0$8t50$2x-zUdxOtBcRgk*d1;q>U(3BLyvOo;4!za1u60 zkPR(}eU|+!i`{?!r*k6bfdI>S8Yz7Z7N?VZ+swD~wehIqmdZZ2H5Y-FIuY6jb?TsO z6}Z5CSM8G4p&zZuY|)PLbgX^!K&d~zhC!*4*{ftMgykjY!y_tnNwu;cm5;ARzyAGA zBU5^quyi^+0WT3>U(x%WLa|rZYbZVbh}duYjd0Xh(HySB_4K2N?o|O5Z%%1Dl9RrV zftC`sc%qob4@YW-D2XCvXy9v<0Dv|Gg9}a$K%$1jqk}7Tmq~Ch$7CId;2j<2;~C-0 zowTjM6=%CG+BamX^nrs&IzZut9Wodp=H<utqQ8w!SsB+y^_p}Fer}%|u8<FTa;lzs zV2hO6d?e3E#DjhP95{-d{z?^q_UxcJSC{7ewAx|W+@JnD0HIB0g+{m+aUcSrb?T<6 zBd?8Rl?GMHH>=Bp;29d&-bdx#1R*)qA=g$Fhdcju_UQ~}?Z?q)DGjb#R;P*J341FH z<%lc@FIab+<`Dmijdy!*hKxu7XiN)hW;?w~23V`nMP`t{^!Q@=b{?3aBa9vpIu}>} z78Ysk{@0ZYZ)Y$1*BOgaAs*PYCEMl&V)-;Oq#z+t1196h_Xk&A!Q{$JL)d=uZzzVu z5sf4Ls~Aq3!eNkbv;O0_9HGw4BQn-TP|d=zJ(o5UE%l|UM7sS;g2G-Q`aMN>j4h*j zwE-KoY<iRc%=Ku8_2m1aG!8(9$6@U}as8d9Yd+`a(GzBlnhy3nb2$;D+V>-H7Rt(r z@+IUyoAWuzwR5;B`nH@}%PXu+wJ^kCMBd5D%cH$V0(Pnm!^HpcHvcGa$Sp-g?BpCQ zb&@x!-ld}pKrQ5`5SnqC!4D$h!3_+ymtZj-Jwd!sCo*XNValc>xl@F4key9z`P;hm z$5^b+;o3V5A3aTc3{%cs*NxYiW3wa7BfmyRqhlizISU4vKBSLP_xFc}4pNQ_3&XYU z#+!=UqN$Ks)uv-6u!Um6@LVu83rFytq}?NkS9~uoXTD&Hnc*ZQ%`~HiXXq?I7nz(? zh6`*8zbS7ko!V1YQ5ha#co(W9!(!N5`<ClBPc|Bqzw1PXj#?rju#``*jxXcDM61PT zx6~%5)$l?8wB;}@8)$D8cGS9($dR{m!IYMO`DnX$^|Vcdq=DOm3DGdWzaP-Q!(Bis z?21wMhTFWT>84nsbBZI>HFF3=%dg43K1liak@ha53O?rhm<c-^?v^ed$6th`U%O`> z{ND#Dy#X?cJ{QwGM(6e|zlS4t^X7GNe2=Z4l-|*=lu8}U@S*2dtYu%nu70i`Aqpqk zrrBS?<aU7uS2;nkU45u%li5O*17Ts&dXQQFqKaW1>sci_yI!FU1SlfSn^tZY959^@ z$#{9mFzVBgizWUn+PeMzok6<5ua*A={s%9te6HtqKnG8-gaFmeJd^9TcqnZJld84J zj;OErZ!u~K#eno8sk*O=XlbeUUM&f~GKC8t27;bW-IrPiDc|rQUR}m4T6ZpY>&D{M z2EW?u;^O9cYg;QH#u!;API(a>saFR#rtctRF6?tv&g}oZ_BrfF)s*F{H%{_3-OmIA z*zGH`hj-NhgPW;TXZHs+Pv;{s<`srnE!e)k;t^57z4_9SF-F9O`C%#(Sqd|QML+TN zX4I?S%+7IhWFHj=6nDWOEI*%C{b;AM5H1sJuzH?+^`Su}VCDPQ>VkQADq1C4Ys%k` z@)h4k@nBuM;fn!uG!!~?`PQ{5>gRV{rESPx+uDj2HxH~$VN0_@M0!?(y7JlzYQvEV z)hm=#@HR=}bSh@bF?XF>siX_t4t8C5lYXr`@W2TpG0(rQ!hO%ojLbaQ>TKrFtDZ09 zf>D0Su7x0+jG`o+riVe=`Vv;y$eo71?b4p{M`;CFhFqN%5<ak@)Uxyo28kR&I)T#* zpQ`;wFSa-fed55nAx*zy<ZHue%baDpr335$D&l%%gm#LckpUh=vgC73feP1lKVGUL zD?$ZzNCwU1u@k$&IPtfiWb6!98Scn_zcvzPRAA9%TI4CCjOx{2A@&|C3%QkfiosBD zEmtw{VjPhmkkA?vA?;F&Q{pEpMzDvIcTpm~{qXBr<#jw2aWk@4MO5J7WTb4#jJME% z%R*4i@)FHCJWF|Ywz7GH{wBg=0mC1cpx|(e?$1A)ElVgG-6d5;p<TW{oxVNfz6Jv= z3pT!f9<i$vJ;}A5eO|qHVrvb8{svUi6XkpC1BCBqt!p|Lx1HFELn4}f1(BiPv#)2_ zbHCgN*?wZ-NYBY3F@V&x15Kp*cL#*sV!9SEZuAII0!Jq&&~~EoRsXHBCz7=HdkTy{ z7H|OVIm7YH$E{K80zk;IRrqbASq4Gl5q|7WYK)otz?60FFwD-)`14gE0#UE~eHROP zG`a}LMb()8%Emxo(Fdl_)VuIF0^IpHPVMid0~-H6un$mBQa(=T#SQAI=w-#Dm(1*C zqe;q*m4y_+<tRi`Qc~J*XO)LCy>1f8f>*1$+ML_OfnN%~TfbRL;e||?UlLC8=}SpP z@hk2*1f{3CYwi5prRx*}Osw~ywqeBI@zPelS?~O$L;Wo8yl_S-DL>5@k<Puo&uG-+ zYBcEHt=YnSUQYOcci^|!P$+|AjIipVN7VAkZ`o^J#?_I&^PHC&4}LweqV9bC*nlpo zrPA7r!Zj%~Q&gS2!hCI%CrOwR9q6|#qkGSzKOrQZgTh;)BR{l1Nli(v{Rsv;ZA{(& z`}*!L-cw{&&@~FqJO#W;#P`Ktku4oC#6A0r?l~@66s>GTNRM~%GeV$bfb$G4>AZi( zYH@sOM5rs8S@ek29dX1*d8LM6`wnJ=!?5lpb?Y5R0fe{GNn67!YsZ4y1^2%-n8j{M zy1sO5%x%F4Z6>@tDgHq(bYY7at0?FR40h0-Fz7?RvFrPzXF1sn<+!mcUH6@sG$KaZ znJFuF=`G{Q2G--X%0!PbH(Wo&akla8iFZoDkcn0hCYa2dx|Xlhp@r3}l*nsW4IJ6o zUe^}TX;*OzFg134Wj5)R%X-Gu-QTZ}gvYgcW7Wt>^J3@Y4g>V?co@Ch=<`&!5Oq1c zM(nk5Zmq;=9u4?SmxPXmPaXEDVLpeuBFvE@ypD#g&qOt#<(;VSHu49g)(Ec>lhTUj z#Y49o`6MFTy^Y2Dd+p{CN)7}-72SwZEQw9zO2$WlU|TBX6Z%SqGzQ5FT?Q+@uC6ur zhn8&lxIRD#{afYF(%1DrESt;fK2@p9L`>5W5WjJ@f(HW9iPyhRx0#@Ygcr=ybAPF8 zsX!2e@wjI8GkK1~L1?fpn2=~d#c8jfU~ra)XZxtkibsJB3~-IH6zYeMA|+!rbWN!k zKq1B<m{9!BA#ai$L+|gS!{?4n^Ix;V9TM!iMz-2#8IbrmoTyu5@4+65SIp4RP^->O zi=|T#RK-L{BNND}uu9j=-8YlkDAl?`WqRE-h%g$ptHfY>jvTN=!YPW}WWtMq9&8D5 z2Z$+KwRg90PDh%st5QzeRotxIn%k(p#^+GHByJiRLv@^Y=5S;fXI{!j-2LJ}fUd#n zkO^DyT1t*FvP1I^nkcWF^@OY$)=gy}<>Z7{4&n&H)8fVMCvTdnXbJUVWM%hPyZti} z09`k}Dg4WUp)IkeUW)QF&uBOvz_>tP@?G;Au_}vjxsw%zh5I8m+Kq`;-!L;m0N~kF zt@un*QW<fKnLOm;xN?u+Ke!Tlr7MLzr~HaJq~rXLL<M5UxJ3WaIjiC!2^n1Y-f*fK zOuq1it+-Dh*4ltkNK}^`R=R&lh(lM+)HVqLZrMCRAU&XHr15-KZz_+g5+}8n-_P+9 z?yBEhstXGb#0yaV;nJ~Y^2$+XN>5DOa)M~-3~V{oB~K?u4i7uP55^D@roT)nyj0LR zIrMV3v8BffPmj$}1M`vAmpNG9X=CNR|0E?1(4oSv=a<#EyAe1}B|E~l(^&LQIowA1 zceYiRDzPEZYHx)z8y7Eoigq8;?Uyk=`u%vYe%5#|PMeXF^IZ3rv{muynNq>F)X_}A zdv6azVkb6@^nOPvE!pwuDNcWhiwPq03E+1X7pycm+qn7mbKTt}$xi2Vz!q@$(<%7m zTmNx&3*nU&9Glpe7p(?MSQ@$Rul9C3aD~7+&)wLCv*54RqZ$rLmsk!(!2F73>7$po z?bk8AgUHvOR<>f7^jU_ZglDH)N}WlrJ-Vp0P2H`AGt!CJ-w=Vl;V@kPQ`Uf^hgOcY zGI-m$I(G&9DcUKqm6BM$o3rx9r4g6nTd#IE!>ExV!HuVxulKoSCnNaVA<keGWPSe} zn(c5rrMJfUrALp%#~Z0!K~>G)b7-an(r{|fsBNpNs_Lt!XJb<-2zL}E8i`)(8A*op z?5(Y;O7!^d`*+@EEp(BiGxYQ5Bl7aWQ%8Zvy0pkA$x*L~t;_4URuEP1RXQn<k}amH z4~t;qEBqFl9*RcdXWYf+cEc;P)BpH#HO{EBX2_mlh=gWi3j;!tu^$vQWE&8K$|`Ev z^R<(5fq?Dxw|t)tQA*Lj#ZZx}OE{$2EZrw*WeIp#+|aSnkGb3$2Iqeo`ZNW24BtG~ zmMBMz67o|>lAgL;uL|a<tK3YbzC4RjS4m7#U*RVbRz*e45OdU*9xosO>JJyOIn?U- zAxNm^i(BXsnbRYpzLF|uAHDh7qJyeCa=i%=uZ@@d`K?R~dcxDub>BJi!W{8OUwW0` z2l^Kp02n+fdTYgJ>gbC%DW;H5$r)4CO~uY~13MCKc@IZl*ZSWOTBYn%@8??97|OR> z31t-M6StM&aN?nm#4Z1&Oh-3k-PNYoG%z4_QIm1#omDV$<w5nOeai`8*Z4m@Rkqe6 z_Q$n-oqFjsH6`J*ARt)DvGcoZU89BtSmP+fB|U9o?Bq(MnXty}Y}33+^1S6LwcC|# zphMmy;}MU87Y8H4SqmNY0{MapY%V8hITWv0o3S|C<|`|nPd_Msd?-|QR(Z&;`>KTC zUX>HMYIle8F<KB7qqk5DrRzG92m|0})|#9`h^iDL{9{a|QJAq;5FL>gmwi_HP$&6O zS!!3s-=mK@YUP>JdUP8b+u5~o37xc}apB$C6k+<z^7_W1YH*kZOV;B&)?7c#kb2Z0 zcAEFtC4}u5V*g^Iv=xGr_W7z*KuT6g(RY04=F0Z{0OX>Y{ug8;8Wd3x?pXG&^}?q| zEW^l(hA6KF`NI;{47Z(mi2r{1a(jE*cJC#P>B`$FNULGab%qZABtpo3zAV!_D>@qp zzZAM;=EzR5Pl1AIp?rU7H{Vtg9o!9(PjsmyFcMesfdlADA{lgP^h}IB%UZ2nP-3Fz zl7<KN86=yeNfXfD^%ja7vMY)jMNi~f0P9z#X2DXUP5TVy66Sg);|Y}P3<@NI>XW+- zFk+#Pn3ziY`#I>}k}ebbU{LC4fcOI$D-#BSAd>M_#E2hbDs9&XGZ5aM7;LK7LFD9^ zKys!rZ55kWFG7JF8&Yw;m>GJX{~&{8d%580aMpt?mGB$x@-$)fpz^+BryxV22h^#f ziesUHPQCzV=KCOM*Ldd}g)fQ*(B6EWj1l*nWhlx5N2|_#qAx8;TY<`#RxwA-rwqA} za;!8T<#B<o?UiQRB@7?iU<B0D#xAan*RKNh_qgLUMtb3O0v%C#ex0suBlq|{`$#$p zZ@8ld4~X4lIc#TsxY5a3l(K6%e7l(l!;iS;dmUOMlcSr34dXPOzb=NubqKXKf+1?x z_h<Kyf_RR;=s39Bl{kLb@p<0QRnM(h#Z9f*dFnPDG#>c))HiKoyoQmJ`m%#}gAiH% z@p*7fu-q_FEU}PsnSb8bW*D6?MV7!9(dYbyiElr_r7d|ryx`^W=-M=hjiC>3>4jx{ zH4|&DQ)gPTKlOKs-_F{gbjc;$Ye3vy@a{2f<~2rRPQhk`dvexxRvL+Kp<;3J@7;uP zU0g)PCbR1)(iFOgxsTV2zG+wZb2n8-YxmlNT_eA(!so|+0i}a~%}TpUYPzhfHIFW- zbrsEDJFVGu5%uud!*tNdJrTY^_z1<{>_YAJtnGtj%LnV%;5fGGa?O+^Vq!J$=FlO{ z%#>gzVY+k~CQj{9tscGUgumj|^R_$CqMxt!Tch-D%5`x>Q}(%0dQ#y$%P4D$q=csS z3a-7HUq@X>oJNFq_iSXORmu8IkLqIhQG0jzSJWqk18f)o^_%N=ItP)BofCI$<`L)~ zHf~C`tErRn#?8_jn+=lIWX5N=Fnc+Lf@*)vKE78#`+Lhjd<F{;?e!R1w6t0J;=^P7 zgswsi1Ls_Twg>W=9P{ahciR0jCnLP5(X=y54`Sc;W_822N8Ev~fUSi=hTmduqtoD| z)_jdba`l*Et(MVX3-VJ4RV2KhNwTbq9RLo?Dh<>=d%6f+6Fx*@sU+(U6jz!x%a)yd z#4>8;i(rv;yW-M7G|23?QFmUnfjYoH<=WA$HEZ>%J9xlBOm}x(fSbVa>-2XeM_KmP zgR<c#p2mWv4>+L=Mb0NsxSqzBq_J&FM;gL}O6Hh!9QHa%1c2wQU(=6lbV7r>r($FG zoxjrf0+@T%i`UC<%du>`iK@d6@r<)EG8<V#p%Vq7)9s%1?SsMWL;Mc+G-HtohlzCq z6qlL&4}pZtZ}7}3*{m|RQTVyw;TdiYd0kg_TPh!LSi0N>i?2w19b0-|#qW;i;Zv*E zdsO?GO0_@rn>IhZ#mT{8>MQ%3_Bq9fU~HCvP$;Bx0IKMtpyC_IF;J!v8UZ}V3?Xf= z6Sr)*qjcu9gm|<EOHWPBuN|UITzx{eY~aj{rg4=jlqi&wmsf>_@^*fthX^Nj1Si1@ z*QPW5Y<|Y3{%O>d9xWlRr2Rr+i-QuY9mc<D*`O`-d%to2G<-dlIl;+HU<L_!!bsOG z(av3~kd2Y$HK4gk&o?FGb@0o|+>BOKhCSd(N-c(onT3s804-oHWri_Q=nADYbta8y zQN@er{QFnfi|8-OR4W^sN3FaAN2qS$ACMijezkph9Vd^=pC9eOY%S{r1H7k=BVutz za*XiAPoMw*_vs}vW|8P|`H2(eM#i2-Z7t*k3#C4PNvJL}zR>jGfJMu<oRM1&MU%IP zWNmbX4h_mM43d`AlBMNzkO&>v2AUr9+LpFmdrL$cWP-(;cW_?IGzR2s>nK1hWFv+B z>?|;+J&3E?e`lweG%u@oYqtY-FOKhBpx0bEHk?%*XQnK|l`Tj`7&mAtW|$SpO@slY zCO58c;=Qv3({4J~Ct=h;K=BQweaAcWkL_+Ae?Wm6rqk$QufXE~<)P!JO9;eN%n~-% zX<1ZZ+SMkml@6e@a~(}Wuf^b1?88S7t?OBcUH<Tyk5x3PhseBRf?i6%-v9Q?2<LEw z{j875x(un{RU69WeOZLQx!+C1&L^5!Qh(bxDD1$Kr%<=60)J;)!9oH|dNaxT^fil{ z`duITvez^{l9**`25YE;wU$7@*RR8Utr*)kE@~mp&>lk1zpJe58~bQo+0G((4*Sk# zNa%*qN({G;#((M$YCrokpx3vuF@Mxg6ocY@6HC$eC#|h{NoiZQb1qanmz%u8ot83U z42CSe2Q~c+H0bEyhM1rCZD|ck1xuAvlkTGSt1vycC*^&DY3ZzK@A;U{j_16_mfyqt zWDa&rH4bjWlQ2Bi6_xTkzYs_W<pS~;s-{%F#p0KJbi9rKn7H)$Mll!zXj%D-9B$ui zbePRo5v%Ur#jYfC%;h3m^V>aF`PYo0W3Up|%vCvtrMg!1sYD8rvnp}b=wZ@(>MJ5I zV}*f$#QR_adzQB;nrELZ)k{z4oE=hThv?~zWN$tjGp9xT&P5i<cJ%&+k6CD`oL3<+ zA{#%_^>U3%kU*^a&Z47=vkdvI1+TOGQ=C22hqx!OQyxaDprtX_xeubkqcSPi<{A9` z!p79e)iSrrW;MT3HA&(r9P3$6AdR!2+fdDv+E~`^&48wwscB0PQ0sou)gx%N<^a}_ z$c*mOdoipG%=COk|NRB`gKEQNY^E%7WS}Be6$q%_X%Rl7wI-~vvQ7RVqFB&FsI}0G z1>_&FHTkQ`J(X>Jozq1Coc6vFAlNx~VgY~Jw#A2;-5pNkcM+?X>{I|UZay^)?H&G^ z^-1;x|7~nMIP>)}(X(ti5(ov85-dQ=?SH$*v}U)U@z?4hjojI`NcZuo{m#GZWbZ8l zK<25q)?!9U$AgqyJN#oC0BA&Kn&Q;`YmK%MPpZ}$ET@D^uqO%<26=W8HE*V>_10bv zf1}4{b3f}TboghAB|ls(%$Xthzpe2<j1}Z~LyAEWBs3zQiXkGEz9*WjEVB1&(&?)f zf`PEio+ks|ssoby;xt(Topb>(YRi%Kj^x(Pyo@eGYUH}J0N2vCx0+benm~XEiM9FL zW7-N|?93Yi0do0_b1Yh7V7<KB1?x1M;R9@dvX1HzO#wo<Nbi(IT7-l>yH&)Jwx`S5 zxLUQ_M?X{o+wCsm_E`04PECS+>k7h*n_fb6;#rljLEVmnG@1ISPsKy&7Qv-0RjwsA zuj6LVhoAV|-_2?+69p*8+sc=hR4YcDm;GK-qLnr}8uxyiqNR&cN`|SZ%kAu%ql0b1 zh-wle!Lan8qLh;a6Hbw!r<)%Fr`G?KfwtV{pvua?A_~^y=H}|bzPwR%=y$yYqn|zb zCJ~kBdQZlH>4C06<@FUq>OGX?gEIu867bsy@vfIST{e-xVcMd<?fxFlI!L|3vi}2h z2oF(g8-jDlFZA#0>*T?rF4vr#aJV+`a&y-A`!Mqf{?FaGP3g$wJsIg2VYoYSv9W|+ zYQu<(QTt84Eykk;2zd9ag8o-7aU#@STQPg%HmLHCn;d-V_5>ep_ILf>c0I1b?hoOX z-aaN3lF*!%zZ|)u5LAwL-h5L_$`LDhQ`Q}b`w1yPx2`bWU_pHUAx->b-ZaK|WLa{S z4k0J1G}vmHU-b(^;ygAoAVFQXp_%YbSys!PMU%B-w0eBH(a{Q;L2LJuaXgw`+sgXL z$cP=Fo7q-}H+mI2$~C=RxpemY_5(lr&*_U?&y&^7Ggj$>W8#aK?*&6R9uDv=W0aGZ z2gNZ5xG+zcQSPH_8zM{Ag8OaGLap`y&SrLEz%_>@yO{*i)j-BmAk(pd>-RgEB=YFk zHi6vD(Ef}Z4l!Z9yJ|}r%x}}1XUVClzeqA3Ub#~L&su=j4R_-yVB0=paj-4b!~qN< zj!XNBd9xvpOJaq|&Fr7zQathyYxwFEG1?X}>E*lrITWcx2|Mh|p1^=ljFB__@H3J# z+wX-~*rX@hcwp8gCRQAL#=lUyb<({dfZdKg5q!vmiI~IS!*%_6>@aKh()9Zwn>-)4 zmCBOJ@VVZiC}57DuG-<`%Mb2A_CocOb>{L=l~6>+*jI`w*XzO&08}DPDmj2IwE#E2 z`f}b~9P!b>0G&*mg1JD7KwC*u(evjwKPu$W(g_)$H-Z3-yt@zyjcl<%v_0zD+gt`i z1f>8`ESM^!-6;pfEwnz*-Opc9>BDmXUJhAU`RhaD*E_eb8Z=FEqL#Z6OYJQb7#ZcP zT-r3slg$%Nv4+SPBbT>k=((f3XsdL6z9|>ZSiK_r!<*Aod+K3#Y#I_DFR4EDChpxq zgK|qyiIqZQw;_*L?D1E4!?11vlR{}Wgtq}>#tbXp3+*ni>Xe>px(|Q6m8oifzB&ww z)UhX?;h<E;Y$-fUMkmj7?|L2$id=eyC0Ee7zOwUoP9c}Q&7BrYZIpWH`QbT|<r7t* z{$Qx6efN2j(~ev)ujGMCkKW(mBt(BZ8w_b{zeZjAtu-dk&Z+37ngfE04@k2N)fg?P zcsCzyRtS=QQv_3;nsw@A6H+&C&(pG0V;&RFu`qHmz6Eqs&kICp^~MSu#%9vOgPu$p z3w4ZqWT@y;llZ!y9qyPJzcRH^2uLK=KCF$8vgElOaCJHxQAMy@t0_@qc|@I3?hpjF zmR}#2;`zv#OuU8XhQc@WOxaLYY_bJB_+qYULw@p^20l<`qVuHAH&08f^Nz2tywIu6 zz5n+85aPC_DQn~6;?kgAG8JARnW`smF6t{9ydaD8O(c9mp$fOs-h$@<{>RrjMI>#{ zd03zazV@{jGC<I2O;}3&fus|OOh&FQuXvXJgER^ivXD^^^(5UMHBkG&z8it+GFH&Y zF0`(dnWq#Hj~!11#7C6!c$V~vdW$<Q6b2L>H!o{C^_AnoF~ULn5_NP*0G{a<&K6Y6 zQbbip*bsS?7h>^0*wmQm270&Thbgd#0IFkv1aM05okLbF8%k8SW>jLI50})Q_Y}|g z+W55!_J9e^h-|{x!|EGcT&LER36h;3j!o|;W)A7)kpKv@wSE;xCVZy^BRsCj>!Okp z>&DC;^o+&7uC2PJrl!g9^_r|ysS+iFlu;BhanldD-)nzKG=GbPDUwi3Gf`|Yap!s0 zENZ)B*@$k;$|H=Gy-SlgvyqsCHV~+2G>H)`&jJerWLO`%RUEoGqX8kWsYFJoa-<Q0 ztGX6{NPAH^h8H97sbs4wQPp7}greh4wb`JO#JvK7q>?DP<Snir(4dCFLjkbmKc3(# zR1$L3Lp`l!uq_ItYo~S{O6*ioNUW>==&{G*HU7+>YL8&s9qQ>w*-Xy3@0Th_7*5o; zyzWE+)<1hm8drrSOiTU2ytMEy*?3?t{?)03PAwxYoLow#EKK$4o2udq@HGU}wTh9; z;_wOg5!MhE@lCD4^NE&BsNvO>0?hd}N5xb|0G0?cjErSg)L<iBDam;@PKU)NexgbO zd%Hnymf_?lY#~R^X>8JuPURE(I4E>lX&vG_a<_csA<7tZ;G4{^m2saQd=>1Biv0?@ z$Ukf+dQ-#fPTwWn+E+w5uVK90o7N*SJUeA$85fVx#^UUPi)K7@T))0<TP8`Gz{9}* zI$=R2eeS_;*Sus@H*ez>qt1H(-ixMaRI@$CV~7kQLk<!XOHdAc{puUVJ2(+K@?<3J z0Oda#27M4k*Esl>MCj_rKTR{uIeXwrk_>To{1>=y$%=uB<>fU)t^S?aIA=SxRcyl8 zE<tu-@1K6tarCzre)y(}4WFZrl1+xKtH`35wq#oI9lZLv1E@H7+nBCUwZn3O&>-Yj zw*khD9p)|}|6UI6cqbOVPhp`NEuI{#FmG{;cVTA7Laa##>XjOXIQca9XIsLDJC<-V z+?;!E)Ogi2#nYxp{0+EQ#VGgs9^Ogmya&ypDM_`3)#z{#LG6Pz*HQZvqbUNSXL!^f zqc`H{TOIdZ>j%VF)#m-uQv?pH(fhj$ug3m{e$eu$$9-&I7V-@ww}68%a<6m<AL`f! zU*OP$?MIQ}F5kev@G?{Ncs&su8pyFKdiLg}h1dlYrc(^TUkCY0(A|%vBEF}I{?}I1 zH!C#%@ss84lQsewXOhaQZdlehj869kM>osC;LGgEX4CggMMhF`q)8foFI(fN+obvT z{4-RY^PfV<aKHN!&Es!1%KXtWft_X&$)dMU!sgb&isJMfJwpG4!b3UK%5i{m(%+-n z-Ru9{FHy+=*BY>V?%<byd0#LlcM;xG(^3VO46&<@CL?Z$kb^DeyoJNVWfYD_o6@wy ziLk1hapv<1=c&CGcwJkMEDX*1?5vn(eqmosIIk~(z7@1Y`&P38;_#{Jx9zr~x6=of zKr$&w3su-#T*>X{vm~S-7j(+)F@k<!kwxsNFV~Qk-7AWrQ0{#iokFG<{4sQ4-so$D zyWXmnR(=;)LgDyW+RpO(CL1|pK0IOGFZbM9HXPfw)s_4_oh#hY`Yb`&2EkwccG(ND zYf}cfkVT=M8!w$YP6U9?8Te(=w7~#w4=KiURbn$e%*OD-jf5zLK$th+-lz~?m^XE9 zM8_Tnk?_5}`vrasu`qA^eSsW>l%%uYkNZ~Jm^Q2a)QM4yBGFR&TLjJ^GTg~K)QZLq zy&wW*6D2Q<BG|hwBA!LsAl;DfMEYi(S`(=lMaG$IB^KY1CLQIHn=u^hyqyy4iEx_A zF^YnBtF4+YIY;q?<1cK!Rna-N!>g@Sp&wug^M+_W<d@9Ff|DoW(fNqdv6?y%OEv`G zwBO@?IjTK{6r@W>i&tBLB+Trz7n+|!GXX0Rk9Gvt+#N9rImU@3BgS?8CS8dLw^!<C zuY(LWZ`hA|W)9LN8jf0`B^#m+@<8|!1D^2rs+%_5KKO-f7fTRXT98rUCAbEqw9BFm zX;R5GB`=2`G>+;TE-Icdv&f$Kh<JRIuJ6CjV!w5kb|9T+DH^~D^M?O*f<j8C+#omA zXd}LqnXNa@hF!YPhh3e4uxk`ZPUNVI=B*zq#ID5SW38%>6y>JX;Dpz3h2!g&lqJr@ z(N+JQB>f{LQV{6uLwCvg)B13&Lo>J<MWW~~-WdOBiw-C3_hvupm?cQ}y&a1-W00;) z7mGG$kS_LOlxqN4TJk*wQV<!~*EFuq3{p@mcsaN|H{u5p=&Jf~!cYMUP93RK=K)7e z#2{UdR#PIL&1}a3$VLcfy$YHB549KCpVp0VNbxjS*Iny!#*N{E2asU&pys#2@>5`t z!wI9q&ESG>!iv7&c);z|e|G*G`Ty?xuNHnw;hON_q*-Hbe|{o|{YXeiz#t`!d-rc} z5w~4S&Gs(`1~2!`-A`j14!W;q1|iK0Hq2=U@Bem?@#H}Frb=jOX>U%}{C|dHkosO? zEFuJv4Sg%@y1To3dA{jRW74_yf4T8b6S{i$?j1EX_0w6LKYtX21?f{7v+qggja}Pb zv08<?@9jp|hh+!Y{~X@B*&&fzQBl!-zh7~9c=+efpLdMv%Z`J@9<aPfI!!h(0o0#T z#Uvz*Y{7L&y2@QA`!f}$T7J7<!@j&FeO_^2dxwkLoY?yP`}yy$qTAcs(RCa{WFt<W zKYtb$4jeP%W5hL3R#sM2TzBCew|tk9no7d!GIZpINHaS#^9~!ENYGDLDVd{73fkH| zV4{UqEh~)PCvC3<%GqE<a9HE(f51tNe^c4Ts9yQof-{LmE|cGreaB~eIEB2vO1Jg9 z`^jpWp4&oCAZ)wKUSdkh)#N9ZM#13sBQLjug6!<<UN^@p-Tp7~IlOW?yp6@h19_h} z2V%;~%D`D;f-W^$&wUjQyI%u`MaRYEI$NnF_<U=e_tCcvJTZ7&baXWQ8=O-7RAxP1 zlOc3Kv)j+NJT6Y~ndg?UF>%U2HHPrR_2ELj^;|V9BHD7ZeV(=hcoI)fPkem*r-z%9 znF<XruX_~*f$cMoMgN5IV`kkJRz}7V17k}|%eVZe0rz_x<NV+)d~HR=e7Z=l&wA}{ zs2!#PUYA27BZQn5if(S#LkX1NXo!8T<8k9aGlXnDis!l?&O6?oZk%ln4*vWpo6U0u z-jX>eSF0fLe{__|Y6Nn<_RAh0AAkP*332|r_4n`W^z`9k<3SjypN0PyZ_pby;{=aq zD(0rkRIa?9+FTDlKA!&YeYp0$S#hUHLI(Ir;`)t{NdQysEb+QB5p3}~&G+r@C;FXU zSGQ-I=A-FKdU~BMdy}3Qe?bnm;xxhpUVq2S^TWl(MZ4RP7r2_O>>D_VB#$dPzshn= zcc3{VX)N8xZ3o5jIr|PgM#jcZ6G7ncZw?nY=;_P8e|Ngtp8<`6ii#SA%VM`9{;H>< zri<78c$u-f<xd1{u9S>Sd3E(ihxMN4r-vEJXaX(<cJ}ib4TGw(vJ3%lZU9`Gb5&T9 z=Xd`tO@Dv7Y-+jHd1`9v&Fj~xOgh|Vqv`ftcg5!8xwiWJ{~~T<#=SrC9l+{&ZUV3p z#B@KboPdU_2e0Q}w~AlE>rhcqX|`L*Oi$lcxM4KS!tZ*%KLAbNA{j@L#civsW-^>i zKUFN}{ql5!`(BgPezjw&^RUzVhFPcS5XyI=x`sx`ZF4wZ2X_3Isd;&_#-MwCejc>S z^71lhh?bP#h79MI=O>nq(>~F+0@D;v^L5676YCiq=KAg{t|uKAP~$j()WpQe+$gvJ zg^zb)g%dt!{kT?}qWz@Rq}(?1wV!{eSL<r&=n#6?dfy!T-fgGNWP&&Ftp0#!0@qjF zgU0u{-z)jAYsQSd!1iofIs%<FCMt?hz^fs%K&JnEdjz(=%zkGy1FN(W$e*!V%Gh|i zSwjqvB=P)t(gV}8_VVm55`I6imzb4xpuq*S?3Y)7=6g%R@8Nbp%Zg1T6&0%~od||z z5#8|h(bAHCLIEB7!2bSz=8DJSK$Sn}QjndCzhf7lSO668D9~>~XaODSzfBS7yXJZ@ z%f-$8@w5jvk?QUp1ryWJl!72v)|ir#lGUGF0dK%?YbaqOcFGJv%?SYo4?R6SB_$;> zQCVA?z@yr2vP!2JhyK^EU!Y|K+OMX-k3IR#d2MZNa|ZstV9y{j$(JNKSI3rGu>s{* zQ5}25SxvS}+=e{?S@vC?;JHP^(BwXSvc5>1eqI4hh=YSu{!r%(h3ue(1+%HEs!oH> zKg&V_VtQ-Oe#LzyxZ=d2NX^a74a6!$QXf{|dl#;L8*W%3L)k`nTQf!9??pvLhFlCR zEP}9CsL`|KNI~d!c-Qz-eJL9BjEsa_R;uFS{qf|Y1JU?cAY3E$frvL(V?fGtT0R!# zbJ~l@MKCt`?Nb_yLG@}l_+9typD5q^OUvy<RRhn70`Xo_{Fs5B&okuzGbkNZ)dtrC zb>KAaofY}0-&IU_I1o@?UOqZH8XsoG5nL|X*x1Ol%;!2<ubquv;N=vE&$B~pOJ1&_ z@A<8x!{_WzKj_RCv|ZPW)(3Mnf>oR7BE<?I6y9GJ6cjLl7Mri#h+^qVXZ_rFywa|N zA>T;j5Bk=6F$x$@=Zp~2r>+Y1sz2HPjuA!I&~@xz?eu<2%v<zVH8^9b$@YzVDK|$c zn<kggQOWo3-#a?^ArJ@+%|Hz!Q&4k%f4_Ntm(_`7)|7(+V+pCN=6O}~Dna_K_1_B< z5MZ3g1wgmW;kMQG^?mv~mZkG+xk7^lKq8Wj{g;_I_ebz_8m-=un}9)F7}Ro5-A-nB zIFn4T0<15X=Yh*vn24s_%oHW>{^76U4$gZ`5N+=<fUWIq3=wX-WxVvAP+WbUVEYni zH9ZrPKosPuG}iL-=dXg>>%GBX*8(e1HWn5Z2?fXb=pBD0$lTX_KLGr9TS<Yim8xKR z2~7<KXTh3hCt>I1>BRrrw{PGL&DZ#hUE8TTX5+b?W@DM=dA{n2MH@fD)<6KZ@4T7? z!<WQs_bUhoi;IgneD1kCjz%B~0>90^IBpK;c^@?rez401=NpX28t9Gh!%;JcXr$hU zY*$6d$jHV6(RYXS<217A4s&|$tt-bML~McR92o4qByD110@}gtWL3a)I2oL4Vf2AG z(zQa#ID@3Aaj+5SYyRL-V;LN@930MTUA`>ck52mftK)(%KH9ht5N1KAGjJZ`($dl* ziQ5?@_1A5%P?D96_J8!00+YWVh<YqKO_iXvIn1G8ZmEzcg!nz)enBN<U}V%mX_Ely z4{z#y`IL`+_tSNJ-oW6Xf$!A}_@7c93e<X>{Q*5Q^bIaFlk3x%F)JR3&>Jk1UI-#X zAjbf4y3=V}#^1zsx>V^?>U*UhPzG?5!S8tv8h?f#76C;Q#AeVm<Lhs_u4Z-O1g_`7 zZ|16W1|j26C|XI`(Ri5?IANp^CzFl7(EU{u-W<EXqZwdoE@@Z$kuMzF^>{uaRPrzQ zFLuV`qN1!j4gLK5z$qAE>E?Go*7YwS=#m%#BmRyn{+F``YcZ?1S!Cr9yNZeUS*54r zKxpTCtyIvzr+@!O$Hh&{$ss;WY0Bs|s>8;{Zdp0b&d#2mo{l$%IBiLZi;G)XS=rgy zg>{OW)!(HV_`w8#F@zXrYeySdfQ^f*p{6FCn4FQ}sa=>1*#Tj!s<INqae8|Cql~JM zN3Q|F(`-6v)nqs&N+gPRV*ePevM`w{nQBo8rcC&W0q_cZ-bW;p*QkSq$A6>i^UttF zDOA6Wm*y*6x$)Ti<XP}>q2|%iegkD0<ahMnz_yl%ImPsm1^&Ey8K&XU(L_8Bh6m<* z{}2bHI=2E*k&#vxQ4JAfNMMkHFY`$u%B_M@I*^S;Aw{YMfI&xA+VziE|D)#rw&ftP zMheRRFSh;PJO8`IfA9Riwipr*3|DiQ*l^(`Mhjay8YthTQ>Tjb>ip=D^$DcYs%xL% zDrWZG+G8Y)RaLQPB@la$+?H&(h0z<dnPx#YT-udJh89LiLnDEGHsDGIo`(GAhQoh) z-}kocgUnfQYQ7~#?bNsD&Z;9}rm*2&iol{JLX(t`knr*G8A`Pi78cgk)ipEwTf?6= zxCusqkgTk%x;oA*f6%^nod|twiYPNb$khEo28Bk%V_3fcX2Pk-Ndz<^k1?(}6LWL- zQ$}~*9RK^NJP?U~KoA4KeE)FLEy%MpQ79=Hjpw+N<Nl8zXyn$lwRwS59;Bl>^=7Eg zPXAFm(0JNBA14ssf%x3qT#y!OXf%VgjLUj<+2IE&h(kx~xZNP{x>@x;`3vSQ5M4M4 z<iJok{X$XNB}IrXQj2*ytE<UvyVzhcQP9%T0y5CI`0QeGE<8m4;;+tlkoWn@e&IVj zkosN=6CXdKTj!sGiH{1tI+%m)p^W4Ilco>+KDff7k-g;#+s;l)P9FLWlBt~@$52{@ zTpJsk(O<tTU&0Z!Qa{PaEZezDNPL;FusO3dHT_10R6^YuU6+`M88?`el0q%5JjCzn z>Z+!u1}01n4i)r}YohCh$mHbY`J?N~%J(_)xa^{)rrTvIB}PU@iAhPK*9u@}pP8GZ zrTO>z0xDlMwS8esEG$Qt9mw|MB^iUbj-a3UUIBcRfxq*1oBd6SQD+__VpMAt>WnG) zs6eQ=rpE3=E@h=UBS1w()sSoZzl47hq^7(syNXv=AnOO81~4DXY_yyz1_{RX?!;y! zWA*N8=R>hv7GO9SOAONYZV)0s5}ya^iU~>5MoIS<P*Z`(dI<)v|I2d@uWKf+tCgHw z%>RqU%Yd;CzUHd+miYgIpg#)|iho_~P0{l4JqW(sDMX>vn~e>RjEoEo?XGqE*XVan zPEF-`?bF8%P7Sjysr)p6{D0|?2A;*?6vlr<Z^1MTm58Sn3|0`HSvoJ34ZncG?Q(a5 zl7+?ocfRn#!UCma>~g2K`<oTL7KhL3>Zvbe|D`y9#jF0K2OKCVpX;aY_G7}urLA%% zzQ<qndAg0)#Fh8XeX$B3X2tva7p#V*<k4cQ#h}O_Xac7v{x1*U3jMf<2;{V}%`?sS zIB6p@6e~8|4>=6tO7C$-pgDXRRoYyZlSNwfX5d187W<B~0o&%4>t00CWw#|;<H6Xc zP0|;SKR+Y<pD*%2T4*qyD*)=Y$>GKoFeQ?L+69~nP#~1g9e_xFvk^vmywrTse$vH} zAzLUB6B!-tb2X!3ZDj>!R8(N&QA!Y;3{Wv0kv^Y>fr&LOEsaIH!2*oDka*CpcNdkQ zV0pYf11Db=ln<4ax}9FGAjpe~{`k`$^@F%cKzw?5q0_rL(-Y)jGcz;bgywv(*H>4c z1qpkBnfHEK$@#?v78VvrkCU>pbW~LSNj*}(+g|_d|GU(%%GEINbv<5g{YQqd6!;U8 zlU4QfeAjydLEqY}c`8s}>)Xp)lJtK%bXk)f;yX@(&C>mwNJ&dT&dX7w64Gs{r!i<` z?E9JAT`z}=fm<DLn4MWLHZm4?CmA<8wBq&ezSMDMU*GF6yp+To{5kAaM-5z(3Ktpa z)>i4yL2Ae4iHX|vl4&kl@=@<U$Kp|3xiCLJ{x*LUi$OY_86<5#9gNAQ1RcJ~X5l+A zpBu=AV({1s3_z88e~HiQV&M?ooO8I={WA7pt>dU^X}TFC<SbpcparpZ#`9j*gWr}% z?CtIOKP;`KvKTyrY~%|c6eQhGXM?0SyA#GBqb#qK&tNxQY_L4(et8ape*<Re5C2gv zU;gR$rlxDq%68+8PmdSlAoqC8dwDd!Is)a(!}Za_Pb`Ihjzg0qEywS6sA)*#4Q6nV zwXE=g;%MGD?psk&2*1rk)Zt3I`@(lq_f^l5dpA%Ofu81jG4?_2YNgIt612CK)&6Xi z4(#TyXNhr;lp6TmnKsHlj?~2v^Id~3od+@)(3<7NKIgw^31a?&Eceu(9x#mFsCim; zB%v60!|$;}roS^idAb@{6SzKkyY@0yS=a4-2v%IT=4j-73g~Zg!Bmo~N~wiKE6;yA zF1XC;{wwRn2fPnIk~Y5Lx{`CTruFcAa6#Jgm%FB1r#n}0d+`Cc>fYk2VygP#M}Z#y zZRY!%m@L+v?GGPsPjl{6s@ttMx{BY5kg%ETTk1dF2?sxM4nb(Sxvvjux^r1S2fZHw zFJv2J#_l6b%^*pB+Gg=r3Z5+am%<+>-vA$0Jt%>n{r&Lra0GmA?*SrykJ^;Ye<B?? z9iohb^J)MidJUO;U(y^*bEB7gQ&09B92_Stn`jj?_jfya4_G=b<ew5bEhnkOm746= zNRDfdSpKO%FhTsc3Vgb%^|^Bb(mBlKqpEdZ`dCi79+-E0Ry#Zc8NZ_aKg3=~oS70f zzA=~##<pN+Kj?3D*^i6=Xsox(xSV67tm)vdv95W3a_aa*)rPC!_q1y;YnzS-3%ong z_g*S$9<<L~{E~HRad?sULYo2rbR+hj$4h*xcYjuGUIXjAy)eLh=9*yr&DS_VeB8G{ zhsB24&1j49NOxi;skor`)lTbvjREBGwsemLy2zdt!e=xz&CzyS55#&N*FF~8$$=pc zVk;BQ$UlV-(oZ>1;;(f*foMGr)*C=6eK18_HDv^iW1s@jFc3Cj`scvFfO>49)not+ zthTO|jEsz>W!Zww$KWe1@9V>|xdT|0`>TVS>m_?qkX%g`Nn6S2>8*ga>jH}m=jTo( zQ@<b}RR9$A^oajWEG9oW0|aunJ5jiL{gf*JusUrGInXLUxPv7u9Zk(rsQuq;XDBfm zqH$$uX(?C{0vx8~KG=fFswV*E!<x?pSSJcYBhE}s{UYI8SHW`Wd0f9O==XdCeM0<b za6izeQl}x%cAnu#6Y!4I@%~uMzD8+SV7w=*e(uL~mbT#hRCCFFu4BdXCdJFO3<Y4p zfduqCyfjQb<~Ai_f{W}sTS=Ew-kvI76iT(WB?@G{O_^N~K=}@niraH&w-JlSeihA3 zBFsz=K11_Qh<jb`{wqI#I^o~oz~mtKbUF1eNM;?iLn_tM7)^{0>J(>^Koapfwc`Bz zoI_=8eWQ2(>`C7kRMn+Qg$xV~U%)4XKxI%`N+*mCx>Jka)4c<1jeLcaA)O{zX!RE; zWvmR1vaeu&3+!(lu3KqPlL90@r@}E3^<ZAv9!aZsz64c*0a!NymF)V-BZayFP<F9? zmV+3F2xx39t||ELLHisJoD2nplzV#eKLQTu`KU1M{P{|V@gAOvUu=OzRQs-l%Ozq6 zyTyV3-*fOc1^(-I0r0Q4D<@bYJ}3}RLk8%S@qv9E$ba0*!=?83O{WP6pu0!SYtOSf z_D742pVSN*MO6Jq-tO>w5X~-#yekJqAC6xZ?_UT7#UGSdPq1c%Ll0{7z?k6wmE?h& zwff#iT(0`+QqX)Uo@o}44!yI3$TrIR{nOqO(oqH{VBnT0<mrR@-*hAum5}>ijR+)f z^I-OG*^?fs+42dyYJ_xm6X!om0s(<Qir@#|OD5n_!(S0VmBaBax{E8?+ja;j*Aq6! zLs)OS+B4&yWglPMx!#?7e>;`D_F{LK&SrdRO9Ubjz8-&&?r^DZ%(Fw?{jxoV3==c+ zNB8{-1j`x2%Dmy>VbG9UTU+X1%$xf_lBIoH2m*O<KtL@o>n%7Ds8Fm}4mwOUF1rrU za~<%#uJ+-9K+$|1T1Li$T<>EoFqwl3i1rT-KG?5D3m!&k_`dDF{?&w;RnS#Os^5s2 zKNtf5%?eYe-5olk0KhNUeNL4A%uWCR1A{`p3fR$rb^hA*BL~E;?F2jzlU@>g!Fc7y zI9TA(&+XO2RNo5f#}Cbae;1SK#JzIx8d<pE@2-uZ{30t59A!{%@+)zXTmQuhtbPt| zZj9-Z4{4eH_<{<`w_cJBP}u_c_G?{MGWz-?<R&1ij4ZgV?>y~$vvb@x{ki82E;9=M zCYa%{#m~maA$sK%6(AjYw<}Sj+p1hL6@$+qA*ZDGqpwfIKQ|chZBy6sUwmxj!T+gI z*s`sTkvg?J9Jj-)|Dw&i3>y}0y8^4BOdr+UbK_0%{ZDtoFVH<_d77BA>Q0p)U!4;* z^^}P@wpRV2aqs~8@twnUgy7T0eT*k$IH7QnFz<1lW~P43<EEF9X2o&yc_gXo?=s>} z?|ti6W9m&opSnwXe^Nf?I_pej@6n9wnXsDILIc%WnrA;RHV5&T$FWDZzd4m)FsACS zbZqVVuQWIf%<IfuN0!w{rJp1CuvN`aevtvE?PU#-6npvhx9C|_=X0ax2b<gSJq%<( zW6j5z^LaF(e)wOOX+LhW1`{(#N)MM?>p^Mdb~qpTju9*sAfgf!p~)izgoK2!84vhe zFPMYA`>%krY<Kfd3xV{lr?=TW?f<_bQpdq(CNKYg8v6>Mw!UuPP~6?2KwF@=Td@MA zxVt+PcPCh(P`tPmx8m*uD^T2Bf>Q`ial5Dg_r34kd*{x)du9?sCX?A`?{n5(KUphd z`LQCpIywSCegRyD#D-qoHVtDLd~CeDnxpIhIRPLXsQbKu>+T3pV+^qMPyp&@rlee7 zjEjZ|{<9jV8@&LuTWebL`8!-};Xld%YPYvP0>YP4CV!33r43Inz{Yd}`4SLMMluEd z=7T`W05B>5*;`Ux{s+6}CBM@;5Ob<pcGCff6FYDLaP6$R^>69uEP)LD=5wdlEFWx= z80tT>s;pt=j1RVx4X$DEqTup49^wcneQW#X+y0=6!v17a=iO{HAw79vLA@8IkpCr7 zmA(BUXJtz@cGm5Z)%9$mR!iZpf{;&+U2+G$P&q1vimJCws%G+j<qSXHZ#x9&)SMkB z5V9J$*t8=VZzj*h0wJ24?WOS|(erS1)p9}fnB+8&*+q38p!Yf!Lp^~#Dmpqk1Gw|> zPNxC>5V-046O=?q`IWr~<7pG<m4I!%j;xD<-M9--43My2`W-uT|0lNQm)rkgYXs`5 zxj-0X+@F9cj1{>nc{i?IHY@UUvlT0J9xmDo#6*99bpg1aCjd?%fW9m80V@J<RG0RD zgB%mHVLLy-Ndc@4fRa?zFpzqqNVy(Jfkgb`{M-;od0JdEC`fsFC~kQE0<`zfzW?TM zB&J2QMCbnpwgyR4VW0p4fs7J9#i5HUD2$SdZb~#uVGGgA;t|q{&7cHJBYp#DjBs@v z6hah22Eb>rd9Ou@Cx${>z;N&z+<l9Fjrm$cJqgVpcOmf8PAHY63IO1k7#a0hwZz56 z9ULm(O}+)#zt>X0t_46#S6A2Z@s4V3W<*3phbBQly5r%woTr-Da01e>iLJB0SZ({o z<bPp<RIvt039J$S8>>WNyq-w~koC2-Q^xE7tBj!ZR+XR-K=!4jvhf8YBk~k>?jC6^ zH*&HJxvvTnab(~2^^s0=i=WPAqUOD|1mLQ<d3{<PkQG+2VSCSg{fF#X*AdDwtU3X} zCle_^?<!tLSt%D>F6YK{+3Z{|-bLde&;UcGr$@HGeF&6G`>zZSCG3kzgj}}gdvhI! zz2wS&s32l0-HJKOx?GUwTR<#YKHA_lkitPgMUpZwF#p6&Ry@5pF)?8ZC%XLtAg|uY zJQ-O0BagE2pwReqK>CW9fN%NLhxjq;9~Jd~E2+lOIsMhAf9V9e`UCrCX(?mfVpM~( ziWxUqLVP^HC#d{YW#7G{SIh*K0sz2!-hz_b<<k=r%9@%*vo_<KF{=P;^g^+Cdc&!C z)uB8BD;QAW0LDqwb(>ET$X0>m%bBuOF7W2YON9WCBvruQ=*l(AmXCPJq5&|ZO-_l> zv}|9uh#=Ngm=!S0{<ne{;Fd7)@bF?N1Y8{Sj<kn~iT@{7>M5BfWL-onWdT$2QZju# z)0Ug8JS^smVbwqlFG?YQ<X<TnT?%I#&m}2N?(oZ|D+Rzs&Jqhi`3S&94`S3_wu;y= zDJt+jnBh~tS{o*5>hzq`$*Nirv!D0QP$Kjc+jz_OWEP>l;~+**6%MpMe7#m?n{_cH zc-%|@0(mXYH9W66w`<PPxs$p~|AedgWbym{70UT?-}#blRYetWvcSP#>-^MVR@8Z7 zmmhusz`k?GdlNvpLp;&o-Z(GJMw2dIs4?yie(wK4)tsV4@_ec#>ya(iF+EadsqcAB zd^0Tpy&kCsw_mvuUEf1vTb&yA%YRr$DM;h6E>eZ8XshWM=*|BQeul244M?dJfFHDG z6Ye3>bl)-p!(Xvh*D|>@qXb95sS^l%z`=Dw#I8llb3sCc6GKQ$kxP`rI@46IWjt{C zRU7CM9ux;cMSVjvKce0d;5IHlZqAwZo>RW(B2-C4*kE;*YxeQaiFa1%!4>*fPF{Nw z`;yYYoQ3P!Pq#NEDhDUvTKjp2={=KmbX}R-#i*#2$fB+rqR}mbSZuczNozwxXLYxF z+WX&*dy?|Qnjgc!!>%z@<E$JXNHTb0YL*>uTeb$q67Txx>0z<zP6yWsw?xm?ze4D~ zZm^EYXzVmdodZIzn#m6JYO6%YT;)+Kx8h^9OSkpN<L^NSkdxH-g{`2x?0|v6uZaW9 zwKmi}A>rpyJL)#0>*C7vyGJ1AmQfWI56mu4-!8@&nPt%Rhe$CNT3rWtvTw~Lj>#OO zqio8mfPU&F9i917;VC%Skc3W)KI+d|b*G~qWi~i&3&R`OpSjBp*~-1_Fd144H{Xe+ zx*CXjG#~83agSxQjQZZfm7_+VzrW(>dm(z`&;j>;QmgKx(mn0LRpSPtFNE!o!?W)O z3xge;>;o-NsBmy3R897Efo=>6dhm;Ql$M?^xp$5%N<F36qVhI=B7(VCPK^z?a-3e` z9I0i1*2^dG5-nQZf9`jyQ91M_%_MO}$ZvwSZ?9>|W~USV-abiJ1n7D(jz;U3@F3da z7z!qKZo6q_)uzt&ROfATnpfmaHYApMX(?Jbl=k1(46{<S2yiJYK!8;4x*@r@LkQO# zmr@KuiH@lZyYOhe?BJ4z$$y$kbX>c;IQb17vVfb&E{|;Xi+O^c?|_&?Nd+O#%dgR? zrZtfj^zU`#E(O?=p+<*KH-~5YKVq7yb7rnZ<*?@MIcS7ub+1ehqbedzL77ilDPdB? znELo=+M3v@H5VI6*`jmu8o3F0pr5Vx#Yf~#-owH*pzW{T24TXtPIvKM%xMiw&bD_# z4WHGss^V~}O4~gg=a8j3h3M;VemgG8fQ`JbcSOdNc5l|xROM4Yp({Gvdz}j_UHWbu zf-8bAuI-<;g6c;LAO(<=?llgpTlCMbTB*dxt<I|#-ubM<5)<c%ux&(+oct1MJK7Z8 zjULXv8;J-#t55$7&h~GOJAVpOGC~INKX!AyhK@mU_0XN2_G-3KnWpc42)|}vNSK-? z*2Vr7&*`k-<6{N_R0r1f-=u7g2<+E8DUTo_h?9xlVFstgu)SLGRViPJTxum%w$uxD z4bAsBS|8rKxp9N!s&_ux2{zyJFYzLSI=8!`I-rz7Nm_PzpODH$qGre`Jj$yPjn$y_ z5Zx53sp+n+)%SeHM{O2%X>=W+7i1iOv!Xe5yklSWV?Qlu{ZY{Pm;O4>3PDH(ljzfJ zRt#T56t*Qt(3nwM>A7yZPO<-k8h$<%$onc|?@kCR*fNg&`Oi+Wfb076o$)=I^P&2c z&QI6Mw-EuiY2^t(6fp2EfXr?WTe01aA7HM}-cNuJ8T=+D40#LB9!B$DgQn*_AIwH_ z@ar_&ujO%++lz(`da*?xHEeVIx^tRh6&D(XY0=(amA-_h(w@A|*w84bGVq#oCB{0L z+L^URCtl(lmz0X3ur^R)3!my0?FG2{B*HlBSpmIE7P7)Wu;RzHAP$2z(Z+|G@2^2; zeIadze1E9ce#oeY2W7x*3m(x!NT4vDFc!B3Ux{E)A_#N^!mO-vy2%a<JQ_|}776o! z5n+H<8%KoO>|jGFyHrBZ^(uzg4xvh^R5Oo~2w+w~>idXYn<uG)C`Wt8{W(}yn{wj; zfh9?v3t9w1SKFnLW!KEM@F0?<$_pc^^s|L58ScHHnWlHYu8Z_~h@LS)iB@0oVX4n1 z_tA}0Ivukgl8j<mQ}2c!mS?OIk+H4AJw*_8;cZ0{{WK!3s%^Kbt+li6aKBu;2FPm} zx*<9kH6361crS(@8i|NftQ}{;ye$yTbw4O{FT>xEkiglcxA6V${Zq{S?6F*~L&&?v zonOk58BO5j$~V#NY;R@!{8_DdP21#RJqCWjlY;+cU$KXR?;H2^Rbdf(-3phJm2wLX zP*`z%7TA<N-JwIKY4;S)SehJ0U#Q1q?21Y^StfK4edlA=|IPcDGiSORNcI88g};Oo zm%g7*aV7s`Bf$&qY9qZ|%{@<1oT|FGPSA}}5;D;8#^^P12!GRcf&pU1$>G`vwD(1@ zDbz;L3lMREgBEe|+2C5p*bfzi1DANrf&d~o`7SWt=da<o@iTBQ?{tO2o>+VAi4ku7 zX@>u7rd^o097?yh&SwFNdxDYjWMKjIy*$QviVYg75C=foX>scG3$<Ijw5m}LxUQ*q z-Sldcuw&*)<bi#ub6L4l;$Ebyl~!uDO0V^K*2pAPdP*<*RQym+X#X`gX|lGudckdN zEJC@D_3J6B)B0e&Ad4`NZLJ%9V9Z=CI^M*w_sjN}V0fI%ha#`zd8N*A`?J`riXI_m z>hNLX0fP<?knt1l{HoJ(YE#xdIw)s;nZb5o<#D~JQRQ~g`7^Y8?{(%itf2tvtJJ#M zv-o4b&H3tw6+INJ^m$GudBv<y#>l}>4X(|1wf#_r>;4K00;zG~fF-t=r0_Vd!WE2D zaqNhHxPayD{D4ns73rvKsk>`sefH@6(hKg7j&yJG3q78f;(D3>%|2WPjY$N|x?Lr) z2ll9{JPpIOnzV}C3dHEGcQ-@t7j;{vuh9LnOZo2Q6qoz``_|)w1W|+ggN*w>to2Lp zOhb-2SSa}_DVu(sckyFey%gr|3D^(O2=M1EM-AJbAm_q)Cq_<B7#ek3yc6=~%M`q; zrn-TeT)_GTx~X;n(K(fF{qGEqt$z1PAfz2XDRqh_EwpGw8Yc`QfJVm0*J}d}`^EKn zze2&+2DH~j<aFgvJ`4MYwOt`UwF9VW4fF!^e0*BnBYBLlN6VZ0g!lKa7hqrO?Xhp3 z?GJmDq;}1}vs|Oc#zxLKkozA=L9RAV9}df3y~HCVr!1|^YClhyi4+hZmecXd<EY)F zEQ&ubyvo;T^$X>LB~hKUCi?PLm8{@=`xNEUdiD<`Na!i!Z`VyPaZy*xs{4?a5Vi5= z(;HRjfwSqz$*23TTliB;tl?c-YH|Y|2aDkn77P6|2};6C7ck9H7O5DdKWVky?^eua zQ$4VSR;->cQ6-5J2HJyT4NLQi3U)pVLT-M2FN+Axygh0Pkk|$2jtAJcJECGLHsq&= zr!CP6+h9Nu8@3R8e&XH=FCly|t+aJ3)Kh;$%{tj9BAZx~djT7Ne6@+U+Hv0sgy}Y& zy10dqxCI+cn{Zh>0!d<x4s|2m--SHl+97?+%$AXhf1mp59j+2Y=J7VgulB`>{0+oI zBqDzWAC8E3-V`j@7BF#%ii)zb#$fa!1OA?`5v4Wc7SKs941fQX^<t6-!oDs-cr^k^ z4kt+yeUp_gQmaf3m{9}r7mhKKg2Z(95_Hv~=);lnlBT2x^t<Kgj8MiCh55t$U)WS4 zE4dQLoFP8Ff6XjSl{GRPX2gEo0#++s0#;F6W3VxJWbcBS+{mw`%qt7*nU(l}yq(7? zW`OFB;WL2yoh+CYl=m`IS=9&tjbvR=XlHwS=2EV|GN4T3;JiPO!$H`90nSNFOUroB zJiM%&TwPsVZ?A2WT7n_B*1&ouIt@R4(_j;O#%M&IvY`I(2T4i50&)xx5REF1A1M2v zP|;U^k37v-@dLd9pkHaT+rFx_Gzx0<iE)i~L}a8j+9eN`8MDaWBP%_a`m!QhQODYP z9{|?BI<F`J8tUSr?8xv{Fts%JYuUaLG5|#p5mnRx;5B3L)>j7ji&Fsk$EW&txB$BN z!3I2u#ogikr#JugiG|!-h&y&d+>W^H1iFSFA`)p=TF^9UOVKygEYScFCMG6P(axBs zkm~Acz;qZAg77Y*01^UE^mT<(u11F-T{8D;mirFZHM1y@<+_Q#&{DRm&*(~nEFirD zqPvTW3((Dj@(~rV8UXt!Dhf(Tn`qEXN(tri+d2vc_72y>P2xpb3nEn`syqp|_e(63 zD3_6#Ii4)~`GE4_ez?FvO`QWAzzD*_!vO*k=nwSmF8&VBLzd+{UMJ>JNl`xz+V(xc zAsW4i_Y4;@3gO-hXc>+rE?mRG-5+2;1lyZ(rU6JkA|m48RH3Mzo0r!Eu*JCX%79S? zcf?<^ycP8xe7J%p#J~O>^d$1Z(+njLXxsW^RTj=kBLl9|DM)mGyrlng2aK_Y6pldW z4M@W$;bBnPFLZjRyp5w^g86)yC0hJfQKj`Ip*S$f1&~WppNw*B6^9~T>Vq)1f5xlP z)gtBE0JtLS0E!84W2i>rez1QXQUa@SG<bgcXEEkY5A}2owd?Jdv5tz!aY&)HKogu? zjro+v$qdIM{!BGfZ{x+<ms;n2AEU{50v2nH$NgV?m-^>QeOClYA_OR**80iM*d8xN z5PdZ}1q3}7zBD0e(sYRmLAEoj)^sLC5|Irzh=)f;2(%vX!&{3Xk{P^UfLi_1H9=yQ z09$T|YHJtxRwy74I_Z4%{Tgufom^h8am~Hg0GLh4NV?zGJp4|-=V{32fZf6B0$zjT zlhtHPTHFw=*{0f&3WN#2-xIl@Kq<%lWzV^b9qe|CPPml4O#W|byTm|t03QItxxFRs z#QWson!}#)_!t8Gd;3jAWtS^}Le$Y=wusiXA*JX~ajc~wj(;xhSu|cxIs9oT&W=?q z)o6kWi|(77Z+C{|2YRP~NrIPDsF|za$M$bFs_~3JzCEk>dxcjq<sJ&67$m0$Vf*{e zbK~CtEx%R1c%r3rxN0z^*?0Z06XW+<<Km^5cbg@)QN8fd9`2;uH~f(6nI_K5cpqys z%HAL~N!5=a5bIIq^I>Mkx9>|KgvZY<CBrkJ`O7tV_4V}_?+XeG;hv@C+VCa5V5F^9 z4c0$@;o&ofa9TBV&l(0=56sY9aOt_(;OhH}Ty#xZ@i{tFhIZO!D=bsZ$q(M_82<^! z-Yq~#xHE)5KnJl%MUxe>6zvvu3K_eII>VaS77}wGR?f_<WFLV}LR;=H^}BySm3H+W zdSBtEzxl$o{htugl~k|TXQa@wT)Y2{WDR(BthhK`*wSBY>2WvB8P+iBDI5@bacun> z6#u~MFv~td#L^}Z@{&00f{f|u(S*yM&Z+b1%T>Vrd<5>WLs3~Kb$b!yIARp=@CCjV zdF&lQXIG4v2%chz9Ti|V-8snO0BsM_f(JyP0r#0m013l&+|l%g#lE#8SSz2dA|tzN z<uEkq;yIz(^4^W7@!PFMBiQOgXS0t7ci`cV>lmLa)uCmY0?7QAyMwPs=Lee;tV%Kb z&ppW`AW5T9GU20?lI7(u#D}+#>VXx)EkX9KKRO5CI>pA;4h?CY<3Vs3{mH_lOaCxA z+z9yALKGCsroTY+EF<G>V(;T4@eh7V7V_y$?7$ryq7prfCA}Yv5267nv!7=L<qaxe z<~!XLXAj>oYjfpN21aNAs&fesT(PK^<@WL-pPMZW*0E5skcowECrQ^R4aKHk3NTZn zZrB^Aj+i-dtj@uwWDfm8=%DA9{HM@^;$ObR<qu_z`^nEtyH)j!L%)=%;%D0^`&o!g zBgohUEo<r5=HH{ytRBt2L&>gqH1!<!sK^*Vr0G%8z0RKDQmtTmayFhZq;V)aq@VCE z2guu;QDx(^kH*~pANa}hE_qK5Zp47UT`ondm_?stuXT#p%*xJy0Dk>XXRDA<>!<Z} zWsum9lYr#%j}8A13Xd3Q?4TocfZci;j~G-ywOW@XH(e1BD2CPwg?KEi*8tNcStvG# zJ_`YBLPHTp1oz$pP$gfC(CYX?Nd?XBu4qoKFhPN<@4He?Ivtl8Z%zWROACU{?@cXy zAHjW00%f9le7=h(w;W9?Jil9T4eB!z!OC(tfm6c|s2{#-8F7Q+kU=nF;)@nOgP~u| z2%z==WQ;WQ_AeR1)$Th3qR{EHqU5t~=Kchc#d-+Gf%v}=Cdhv<h}5@J(2KEZ;mrhw zHkjlGUvrtoXjpue?Bq)h2MS)yVKvd7Q-24n+~TFMGRh&3C)ly4Zh=47(DTB})?cVS zz6Y>Ms1`u20vftV!)bD2&GU-qNxTQh0TJu+JO7!_JlSvM?8+<IYc#ugPxUs)`@#KH z$Efcjr2|K{<N`-bt3Q~3RL!qz?Y~-u%fSadARyQoIndYZHGKm8ZnQXl3$fjii(Q#D zn{bVUT)p|6zP-MjRAQaT)_?7D_z3S!*O?O+7pDx;=<s$G#evQ|ow0$Q_O5WSbTVwH zDv8*S(mnRL20l9KUKk@7tRrj~ToNY1X>(1Bqik(+1X&sC=)VcU0r&q5myz@D$RSK~ z#VSrIjnv&;Gz_Y29lE+Z>mp46x?zLNB8dVQ4^52*lw#uU<}Mblw}+pRd=IfezcCI2 zoDOElne6aaoY!vvaF%~FQ)wMrfYshMP^{3M>yhm>Rz&LiSwucSR*u~<gGcVfqq+P* z(|D1li>&$>Vd88Edrx@((OYxexed9a^QflC%^g2ves;c>MJE=qiP_(@=V?;T(NcKL ze@B0*M+zC4w{uL{jcz#83zoqpsAUiY>+tvAYY{*+iH`op32Ta1e7$C)YAYI4^7?=Y z$gJSxyf+p_Jpx+1<~(t+%l!yIP60M6J;l36i=4UOH=yv$&(P4Ome-*D&a7MCHUxN_ zm1=ie<0epG@>ACy@y}}MScxl?95+WApHR3yU#qb?Vs+hFiPsM)irSZZR=w#?saPEx z@VWRt8xh!H?vX@0BHRx8<rlSEVNCWrt5ug|7mJjUjo6$vRU|uZU-3gy%#2bbF#!+W zHhTes<y4Wv5;eX5mINCsczv^_E=AkP+|9f?&z^tMgm@24|Kt*wT`A(Mai+IsCTEyE z6+8lm<OllrKO8$Wp;f+D4`j;0c~J_w&xOM?JfB;6=7gHt=0}IKxa%BG)?wsK#C3{k z<Q_T~bCmDz9&puIKX7-l>Sn!j`T?7UrNh6UI`5`5^4lKM=o24%xLWS?c3Lr%yX&~# zUd48>Ay3Mt<h!Bt6A@=Bsb~Bj5JPVEUT+bjFa>0_dc%oI!TfSKhN?2IPN}>T#g5W* zKogc8VliAa1>E+A5uBCOuEV`sQ5&;!qFTPB;`!tuhL!PCsa93pNFDVbQ6j5TL;LJF zGJvO=)VWdrsbOeueD-&ZpAvbd`4aZA*_;L=gDu)aJ^0bzhLUFN-({y65T(YE=tVC! z{Tm-3T=Z`UZ3N5sfs4$4R=P?ZJEG?3q)J^*>k+kgQHAb+bRFKETYGMes=(!bAtTvc z^ZbMHIh%^_h5;!6zzKa_1d=Kk`YI$^Bz#W&q*fz$#Ks_!t*AxE)}`P?>(_!@Odx&M zg{M}dYN%i;EL&&s&SxA@{~TL(fJ%(`caKcL!NEY4!+e8nY3?W`2t>>&1N=sSRxK>u z;xL$ve=mw0csTdBR0-|r06cS)i|!sVZi+Vk)|bD4N!?zQduoAw$~WvaO5V%&C)cz> zVQaPTaS&9@rZnbfBWLDqCrUDX6amqk;Yc3GkeZ*rxx9SDxTKdRy4(0IBO@9nW?`L7 z4UnjRSfvJ-I-r*56E_ml+$>)s(5=AI%8ESt<3Fi4<(PK8C~};RT`TK?66L<c4T`Ue z90-9aQ>+v|C)_p~$kKswFTg3K!<_u?4qseC0w_u_=O(k>=K8^AG7vjhMDqn}5{@fi z)Vs!D#l72qhEAksGSb5JDP@^)g>5SP)-`_3HU;oiLA|!3-LLQE7)C8!S1(@zU_+NC zjw@g+3nF6LlXc<g=Mzl!(^HwmArd{)Pfor%=pM+;dQ;`;5(YmUy$7NV6Nwq-i=?Yb zxNHx;mrTrTxg&Ao#u(~&pA)I!V=<LWcmQqavcmDkIT-+TXx125MBE%*R_lSHRzYZz z9e)AK92A9L+C&V5c|?N}TrzDa_!r0g@4?NdnL9rthMn7sy*i+j?c(A`%PI~LQF3Z( zYFym=BORc}t{4uG`SHDeou89K4PX>T#)$M~%zuLwC#dpFmizSzpf!0Zfr0OM=W$4a zgQKjh{C@Q4%fA6hOXp`b-?>#+Ko~R0pSuSu(5XpFOIuq5t`A=zjG3940jl8-VHm6h zsCYazJVbvl%dnpW%HkntuzD2n1kT7%!-(cL*o)@}WG3q`7MQVa=hzB&kmsp{%xM07 zL-|k-Q5+>=R><zH&G;So7?`>CV#w_8V&*l-5fd&L3T}eU6~>ZXu02=`2eVzDTC}u; zPS(`4w^~3b?tQ8Y1ujw?{e^C<#%OV8a-1`;3>@u=4hyr-U?nP%#VmS6M#W26rU2$` zk8rfea#e#GwtDQBTVR=dkO5rNNk0iiF)811pKuQO>43|YwnvhQ?_zaNw?g9zw&#E* zAhG^850Ck5J}|2fZoemJaw;2y|6<Ndj;l*%wv@9&XQ8{NXeQ)Q=9jmoIrg3)@$k** z0Y!pyB$kZ6-$F<_P6yhSxUb0Q=tGxGOCKIKf0ewwNE408cJu(N`qKoW?~QYT6sI}Z zeh-W1=RL$_XFIOWu9PasAtml*4hb23LJPND;vR$U<0RJ&#O@B35V7Drw3kDUmx0SQ z+%ra~`BQHkoxH&$EGz8fzI~xJA>$*L1*M>&ad;<0h8vWaC2}Q|OS6ARhufGAfa^6z zXTW=vD~>{Zq$jg1B`GP8$?Iuf1x8M>H}bmsw2QbwOoj`6OCx`ORLKMfn!XiP%4AXL z+05XL+BJOluLX@gR(J-BgvC<f%-wpfhzb}%Uj9&nn#pBrJJmYNc^rmG^nW{1>;&3r z)$(<6`}ZwsHt`U4K6>RX{ti_;jzJ1M`GTRt-)59x{fuerkSZX|Z%-cBG&O|*nwpyW zgPd8$MjoF$hXf#yn&b4_q0Cv@E#zndOg;LKn<H5r7Q&Vg;k%F8*c^Ksn%4Kd=?tWu z6j3kFx-%2k$*fD#KaF2JKPd8Q^ETH=fafpKl2u#n>*tZU(|q4ls@w)WXF`q|uG{<t zZLBr(LwbaLS+5LR&%b^Ebpf?arE4}PaWvD(cF?TtJTQ~>eSJN5*z|7Y5eHC9sb%lD z#NqzyVT9<rE<#H7xRBGI#nFrm_|PN`)tgar{Jj&jPf(GyOy579x5JGrd|o^M++G@B z;l;ychQ6nSXE^ExK2^G`{@ORbi%ceJP4bQ)>g(S7u-J#+5bXOrzkPhBCz1|J`)p~D z)f}dm-_QGwCX6Z5)PI2v5Vie8$2H_hTvu1V@3o@4M$s~1(6fFkM27^_<>KZu#N{Yb z^O&tG9ZEXMR+&YKN$q>kk)PF(c<vESJUefHTjaM+nm_!iDLQ%1slQaJ7w%%r|B+7Q z+u2kPZ2%@h1mB9_X|`0>!VKQ*V(Ix+MMa~Lz_Tc-ZKIMFm^aO6w-RsoZsWq^(x};A z86OK|kv65b2UIhO_mMwBdhnTH(CQFHd$tgq!>?g+!e?;}A6}4%vTHu#tUA6Lg5Ij2 z)I6CDTCEUPRyv#-GmcRC*)02Sf-wvHpNC=&^mpsarhYzeS3v`A2e0gxMMP#uZVveF z9TI##mQrm}A#+|wr03EtaS^|-hXJR+`@^>cM;yi9mp;eX2RVQy1Sja4KJSp}e*VIa zN$03B<z-_>Nx_jG^2YWOn+KJ!uM7&!>xUJM+OrN$-pAaJbG`SpvX0*c0g~+GM-{zE z(CyK6;8myNDqs|ut5^;u%QrrcZQbOJiR^^qNBGHGTjhYhUVWr?z7wFgTDiGA2tVK` zlIX~bfP{>U3_lUAUyGa~29oWVReouAr3DggVRc#lbj9}v0iHvwQHcgibiA&j9eNdD zbT)+Zl<i(OAoQo}w^nj7aZ8!GC{D)VV`L^ZO3#<rKljNacP}uhqJW}__`BP=CpdD; zfHzHR=nc?odIn$HjHegtmJB;AUA~=i)(Y-Vpq%fCs;h<p?~%Gx2Z^0jik98)AK-(A zn_?zh^0PZ{i!SM4UMM<ho=~!b>mz^BwUzqPPut1^`ppQbVbOGykSMoLi8l5c(SK)5 zn9=sW%L6Rc07FmATzl+a*w6P_fi$XEB)Pp<d(;@p0H~$llD!&7jg~2yw#mcUFgJ`W zypWyY(YeHJLAjXJ5S$)Azgxc$rB6&D%_lSg0v6yeIw&+l{zkPRnpjWwv?IF%?89bb z4{zf=&H)37pxQ?u`qQu;Wp|Dk{&quIEoK3#Zao{A8<~wDLQN5tC3C4(e6tun6_F+v zC6fE}Xe_|Thg`A2Ene!Cdw`7z^-5`WwUo@BP1w#?MP~WgYds2B=?{T5lIUG_9%?ct zlek{)HJYzRtgy8ivtB<UV=KP=8^IwY_pQ+NZS;Vg%LC~!_ln{#Tep0&VWPw+AXih( z*qdU8Z{Ke!$}eu39Faj!>r)&$3G^7Uj%(5nXT{Hy_{mq6thP$2)6cv0&e)EOxGsRZ zE-AUtVP&D)dfdU<6MWM%K`-J!>3pU?5;%XhTBq?eN7d*k%IkM?iZ*;>a(`v!i9z+! zfUCxlP_Le()8_mxl*y2!mYrWDnb688{P1DDx^mXKo~*~<zEzMdW%5e2^I|14xVpbz zI_*+VrWn_e$5{;(*7Bzh=%-Eoj+s|rEi*+W`ShvQI$~O2D&TZ|`x`)us<15NFr3Il z_L*{^Uv{$VjTB)|eVm_x^Eh5v1n6Wv*;}-?L!*r5&iy1|Ee(0=D`~HYEThoNXbCy? ztg>0K!y{v_svZ+?@$hPa%7sdUwmEg*<n6ufl<>e`NF3cG8POg|OKa+0B2_t2p?!QP zT0%bx9v&7c5@?uNKQ?*WXSLZlLsQctx{Ww)82tSsOpRB%T6zfKwFoNTMlobEMRBo@ z3BdE4VSq@?i~~D9BjDkgUj14oH9O!PiLlpM9>1G^41QeeCIRw`s2X(0dM1|x@aQMq zi>Yxu(pJOV*%3F5q9HWJAR@BDC>x!S_$n{`NAuIxZK@S^r=qcWIY+IjxhCwNVd9Xj zQqSD(wf^|Y)+%PI&{xqQyqlI7Lw!Kn-dISSm{_*|CGV=dZ7+r(l^TUb|8y++tEI$T z`JJk-VI)8}e|S`b>Ry(XoyELv1@fZ!JJlOGoOw`tqr$s?CB5v*dRiOEq!@tzGB-DO zChPKYWj5|99)$lvI09@N3wWUbe_j402?>cbkY)k9-Ql5K{-pH(P1p>;q-G82oO1H= zz^^ojcpRqonda_#NB~uwKrKns$NYN{1Do+y-(wqgP!TUZN(8v92nbexUGqRbR*+~} zw}`J$`1b@VTVD;^1<a(iV=QrMiI&v4r|}MJ-J=AG$=b%oziFTgFT<+S<w$M(jd{tF z2BfuLb+eZe0Lzr}#tZ_&Mr2m4RDRjp5?YkM46Kc2pfHYBJn-t07A0?2!Z;!jbyHWx z=wrV;jtC)q!V}(4o*anz0D>4UJCN_G8%6k_=3$|;3nN8RAGjO>)AoJ#lS>Y2-q;Ve zMHaD}<ao`FqFR(xyEJOQ(HtGx133Yv;8X9%%N5C@6b_t_SakO5l|nj{9%5h>!hMV< zSCYIF!1y62&BKT1o4S|ZYL`TVsr@AV8|WJ^hPmv3%+97#qvFg-3V8Qti2#saZ`{*V zp*J-%+BQIr!=uuv{cshh<Z#?yZC7ZbE!BjpC`MBIse>6LByk{AaJ_XXsotuDVmMj` z;4-%w)Zo+HxMnmsx_jF2)*J|7ozBc#gblq{FbX)Wm-Cvdr1D4rVH6a^oIvfT5vWrb z@7ppR_iF@o^FXhT>^@!rFGT4JWTXS6MM0pT)bk1jN@Tptc;&ujfsf!!Xs=<FF`|K% z&hdSe6Ny145VhwTF;&ZC4M9wQ6lGzNs?s=j<&u@!6BzPh>Gy2z!S@&bs6Bj{<{c{s z6{;yFmQDf&$|p)~vxeu5sGBywt1c4gNLvOGHslV5|1=)tBx(%PrE!Vf)CZAMP?*<h z1fQ}zx}&&$cbOQ|g^33iB1_TK(W6v-XpeDHm$(1MgZFc`NnNjfm?C<9l$zPfp3Z_6 zC7aOrn7cAQNCib62Vzzh#nD#I$=**=Ws^rOp<z-JiIQ57PHh7%`ra=DYfJg{0<|Zs z-P{Upu6;*VZKBe!ze|9JUhF0vM4l7yk<y|JrAO=Md{OfVS%%9159^<lAI}Aqohcme zeLl^Y-y^8_=D}t<hAGRFM`Ee{ereiY4V5qbz7evbN37(hOD_km5gyPkRt#4edu2Rz zco_*uPh-|Prb;pXlHBO&J`mWA>^;e1z#oy8L%`NahMX$Fr?`5vcc1M%U=Q1vVV8=n zETm?5DfC@#_|)M`=fxG?jIa_Wy%{-)EYu#)KPlE#O2&#W4o|7Ee5V!@{tz-SiRo)R z&aRhQ*rJVeN&BMqNY&5JO%A6X7fQ)Ldmyqu`nU(dd_rYxfVB%D2BmiMj_Gh(HKhZC zW9Tf6c~_8g)PvDwP4}%=5Q)^)Fy}Ody0TRc^Zw7P&ueva=ep);2pi~|==~(~(f*c= zT`3&w{gkha+56v+d{&Rvw=s05#m*?eG7dhil!V8^zb2i(i+1CR;Vz>?*<@T|JdB4K zLkOv!?5HAk*sbF}!|HSj@)4Yq?3ZkoG|?NP_x>^iDx1Kxb*Tz84Y5pPsGW#%IYh?7 zv7gE+tR6*vla5F2DPwIoRuMo#ve$gEr7w#L+}o#!5*8~5n6}SHFGen@Ow>#nx=F$k z)1Bo4Ii#`ZjI?j-2*hPkQ5Xsn0~6y^UjzoWBIzdU%Az7QM0MwOLCW#Hj<gkjl^RvO z5%xmF7t{Z`<ZWu5#9vui>f%N5X1c<OV((YEw?#k6-dyEtTdi;IoS)}ThDj1s=P%`O ze$EmbBU!5H?h0L^G{zVY?0>YWs!Ci>f9o<95|_RsXNz4^I)w*Hkk`<moAvI|+(3Hs zrVK}FI3j|HX^i=5y<aLuWCI=V=(yI6lXX=D3oLwhi>R4GdX@FMDAM=ng{^X!pj<yG z{s9*s$yO|+b<UI*HBtwqt{$ietRo<zVOB+92(8vGNK{2*2qh@pDt|YFr&{9BkSKm( zZ|~4>pe|=!r(5RA?0#HZ{+mDHv%J1SN(<UW9pMuFD3>KwKzWRwC5G`kV(p9YhTq9R zhqz4Vv6i0ZythdGgq3d_%j+66$13(etzOrIQL&^gqjdzf@Z!sK(FVI{k@0P`nc-Lq zXYwqZq~ZE$-+WG-Vmtt9o*$`k7$_VyGh3qF7_Mj!%n$WsJfqgO-LDZ=-%Ar~I+APl zmHXI{8zEX&uMvmTLpq|I;o$m76QX2TTeekk<0x=I2>fA*;<D1+2wG~|7~<@7h2}ON zBZFj6ffw;I*2DT7dUt5XQ#zgoLKy?@NRd&=C6Xsi@rO#GHF7>J4T8OmX&0?u|BR3o zy0D~;q~$SIT^S`9j<vjC(Xbd6a_w&!gYZabCN1c))G=_>g;uKCeD6^Or&D&(6ux^) zwyuw6@))5X?N{i-rJ^=2?><s^DN^JRiniuT%g4MM^i7u2JTDoj^uv8<g%CD#2ecVz zR)diOoyXi_n`(=a8$@2ilOW@#bFmhtht@&~Qq6UL<oV3^&;`W91*1#T(IBcdXxV^N zd02}2dU&HXz|MPPZ!|eJ-KTlY>pw&<mC*O^liVFx_P2Rq6g;_`-0h2x%+dVhx8hA| zkY(G7;1Oy>9y;i6oLDr>wLh<7;j<GiN*C1ZHG*9eq!Y*m+QM;eMX)UY>;mzel{=Iy zRk1WCUu9XgUCK0Joh7Z^pyYY5EPo!3Z^_~trvN*y$|<J`6Wb39aE;m5c~@Xhnt(9o z44T!m(T6D>oaqq5UcE_;n?SE7J9MEVO;D8{EF_SZWeDAU2a6w3l`U&t(zmv5GEI@O zY`T+0W$N+WXXw|r>t`&;b#pAXx|1qeZZ~Ej?Q58r&kC@_ni?h?oBdFKr?m>-n6vl} zQ@iG6`hLHSbXhlg(N2#0ceObRphL8{Gz00L4Lxq%{W&js(iM*8Qb0w0+w1cPN>fhr z&C&tLv1FUgUWUL;ccWX1yJj$5M`MhU-cuT>9nuK@XY(lM!O(P9%XqG$z|S&+IqWnD z$T^kO()|UAIKVYlI1xV-3?HW|tsSaq)6waK5#)~br6atB*OF7E2Nt3K^;!Q+Y-kMM z{u0~HqIFShMFjlI`AtC&znT6<lmupY1FMNUc_>F;Yn?l>HfDyil#xEA2<ljBVqp5H z>UWL)uI7;H&Zqe&H1W!cZ&M;$Vh0x5k>H8}7mkBc)5MLh6kH#R6ugGx*tjk<S}qJ! z+>Q+S>!L#&(b$?s^{XpY?!f}cZ|X|Ss@|Aoa!GOy^6#ml!2y%TvGpRJ3l9B_*+B`@ ztP`SH=`R<agPruQ(jS(#omDJ*7&<f|?s0pJ6y~x*_zjs^r4Rd2Sd?O|o)7yKGaSek z0j70C@UAR(7P=y7dijR^0(+Spp{|co_TfaSz1(m531RpZ%||j?ApWq5GEEmGnwjqL zC^%(xxMX?GZVk!?tAw<W16BAHvP~OrCd(t~Ii6@Y@_QdVcV)cD=5%Wo>|>NM9`;?? zlr*z`xs>Y{YS2Q^ayfXJ0Njre<=mhY&N0@k9zFjGF@-`oL|tt(;$4=i0+VYImW?Hb zeyJL9Gw-g>(Y3`~pccMyvGdqf%^2a#d?Ak}fnKdnp5~+3eDDZkgM8S$%hG@-ESuVj z+_z9zD1I5)<cENj!?=)Z5h@$<Rwk2f`H1}syKKP{vWm}-W#1tOZ?Qm`ats2g<}c!+ z7}9YW<9`^|@Zza12_eHmOzx{O?6GRLqF!t2R1TR@rTKtSss2D#F<RZi!QZVO#YN%1 z>KKVyX5ZM7-`Yig#RN{|9yw0l$?3i97$Hq}`Jx#X3cEBqa@|0iyfgzXzN#z|Ybfuu z^gXN`f)xxCn}Ib#Qvhql>Ozxhv=cd;;HX6P<rRCE2>;^7na0Yy7jj3N7HISCAibni z4voMxjlh=Cue-+UcP*W*6#UaJ3i6}OTty3e7^wDk_2xDR!z5N$Us2Ova@k7Nb|C9G zX82^dPku2k{IJ>-u=_`SKBA^(OSs#gZ$g2?<=DOUW7jkG7cQ-0pIJc!;MaFSGLniP JD#eY1{{!|vD763p diff --git a/Doc/DbDevel/dbDevel.xml b/Doc/DbDevel/dbDevel.xml index c96074f43..a7086aa40 100644 --- a/Doc/DbDevel/dbDevel.xml +++ b/Doc/DbDevel/dbDevel.xml @@ -1898,368 +1898,13 @@ exploredb.group index: cname_1 dup key: </section> </chapter> - <chapter xml:id="ldap"> + <chapter xml:id="dbDevel_chap_jdbc"> <title><link linkend="glo_JDBC">JDBC</link></title> - <section xml:id="unix2sql2ldap"> - <title><xref linkend="glo_UNIX"/> to <xref linkend="glo_SQL"/> to <xref - linkend="glo_LDAP"/></title> + <section xml:id="dbDevel_chap_jdbc_intro"> + <title>Introduction</title> - <para><xref linkend="glo_UNIX"/> type operating systems manage users, - groups and their respective relationships in three different text - files:</para> - - <glosslist> - <glossentry> - <glossterm><filename>/etc/passwd</filename></glossterm> - - <glossdef> - <para>Users being defined on the system:</para> - - <literallayout>root:x:0:0:root:/root:/bin/bash -daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin -bin:x:2:2:bin:/bin:/usr/sbin/nologin -sys:x:3:3:sys:/dev:/usr/sbin/nologin -sync:x:4:65534:sync:/bin:/bin/sync -...</literallayout> - - <para>We illustrate the meaning of this <xref linkend="glo_CSV"/> - (actually **character** separated) by examining the first - row:</para> - - <glosslist> - <glossentry> - <glossterm>Column 1, <code>root</code>:</glossterm> - - <glossdef> - <para>The user's unique system name as being entered at - login.</para> - </glossdef> - </glossentry> - - <glossentry> - <glossterm>Column 2, x<code>:</code></glossterm> - - <glossdef> - <para>This field is not being used on current <xref - linkend="glo_UNIX"/> implementations. Historically either - the user's clear text password or its hash value was present - here. For security reasons this attribute has been moved to - a third file <filename>/etc/shadow</filename> being read - access protected to non-administrator users.</para> - </glossdef> - </glossentry> - - <glossentry> - <glossterm>Column 3, <code>0</code>:</glossterm> - - <glossdef> - <para>The user's unique integer numerical - <parameter>uid</parameter> number value.</para> - </glossdef> - </glossentry> - - <glossentry> - <glossterm>Column 4, <code>0</code>:</glossterm> - - <glossdef> - <para>The user's unique primary group integer numerical - <parameter>gid</parameter> number value. The value - <quote>0</quote> here refers to a group root of identical - name being defined in <filename>/etc/group</filename>, see - next section.</para> - </glossdef> - </glossentry> - - <glossentry> - <glossterm>Column 5, <code>root</code>:</glossterm> - - <glossdef> - <para>The user's common name. For a regular user account - this might be <quote>Jim Beam</quote> for example.</para> - </glossdef> - </glossentry> - - <glossentry> - <glossterm>Column 6, <filename>/root</filename>:</glossterm> - - <glossdef> - <para>The user's home directory. Might be /home/beam for a - user <quote>Jim Beam</quote>.</para> - </glossdef> - </glossentry> - - <glossentry> - <glossterm>Column 7, <command>/bin/bash</command>:</glossterm> - - <glossdef> - <para>The user's login shell (command interpreter. This - attribute contains a reference to a command interpreter like - <command>/bin/(t)csh</command>, <command>/bin/ksh</command> - and so on.</para> - </glossdef> - </glossentry> - </glosslist> - </glossdef> - </glossentry> - - <glossentry> - <glossterm><filename>/etc/group</filename></glossterm> - - <glossdef> - <para>This file contains all groups being defined on the - system:</para> - - <literallayout>root:x:0: -daemon:x:1: -bin:x:2: -sys:x:3: -adm:x:4:syslog,mi <co xml:id="secondaryGroupmembership"/> -tty:x:5: -...</literallayout> - - <glosslist> - <glossentry> - <glossterm>Column1,root:</glossterm> - - <glossdef> - <para>The group's name</para> - </glossdef> - </glossentry> - - <glossentry> - <glossterm>Column 2, x:</glossterm> - - <glossdef> - <para>Not used</para> - </glossdef> - </glossentry> - - <glossentry> - <glossterm>Column 3, 4:</glossterm> - - <glossdef> - <para>The group's unique <parameter>gid</parameter> - number</para> - </glossdef> - </glossentry> - - <glossentry> - <glossterm>Column 4, <code>syslog,mi</code>:</glossterm> - - <glossdef> - <para>The set <code>{syslog,mi}</code> <coref - linkend="secondaryGroupmembership"/> defines secondary group - memberships: These two users will belong to the group - <code>adm</code> in addition to their respective primary - group definition.</para> - </glossdef> - </glossentry> - </glosslist> - </glossdef> - </glossentry> - </glosslist> - - <qandaset defaultlabel="qanda" xml:id="qandUnixToSqlToLdap"> - <title>Exporting and importing data</title> - - <qandadiv> - <qandaentry> - <question> - <para>Write two applications being able to perform the following - tasks:</para> - - <orderedlist> - <listitem> - <para>Import the previously described UNIX user and group - data ton an RDBMS using <xref linkend="glo_JDBC"/>. You will - have to define a suitable SQL schema first.</para> - </listitem> - - <listitem> - <para>Transfer RDBMS data to your local <xref - linkend="glo_LDAP"/> server using <link - xlink:href="https://docs.oracle.com/javase/jndi/tutorial/ldap/misc/url.html">JNDI</link>.</para> - </listitem> - </orderedlist> - </question> - - <answer> - <annotation role="make"> - <para - role="eclipse">DbDevel/UnixSqlLdap/Jndi/Unix2Rdbms</para> - </annotation> - - <annotation role="make"> - <para - role="eclipse">DbDevel/UnixSqlLdap/Jndi/Rdbms2Ldap</para> - </annotation> - </answer> - </qandaentry> - </qandadiv> - </qandaset> - </section> - - <section xml:id="transactionsInJdbc"> - <title>Transactions in <xref linkend="glo_JDBC"/></title> - - <para>You may review some remarks on SQL standard isolation level - definitions:</para> - - <itemizedlist> - <listitem> - <para><xref linkend="glo_Javadoc"/>:</para> - - <itemizedlist> - <listitem> - <para><link - xlink:href="https://docs.oracle.com/javase/9/docs/api/java/sql/Connection.html#TRANSACTION_READ_UNCOMMITTED">TRANSACTION_READ_UNCOMMITTED</link></para> - </listitem> - - <listitem> - <para><link - xlink:href="https://docs.oracle.com/javase/9/docs/api/java/sql/Connection.html#TRANSACTION_READ_COMMITTED">TRANSACTION_READ_COMMITTED</link></para> - </listitem> - - <listitem> - <para><link - xlink:href="https://docs.oracle.com/javase/9/docs/api/java/sql/Connection.html#TRANSACTION_REPEATABLE_READ">TRANSACTION_READ_REPEATABLE_READ</link></para> - </listitem> - - <listitem> - <para><link - xlink:href="https://docs.oracle.com/javase/9/docs/api/java/sql/Connection.html#TRANSACTION_SERIALIZABLE">TRANSACTION_READ_SERIALIZABLE</link></para> - </listitem> - </itemizedlist> - </listitem> - - <listitem> - <para><link - xlink:href="http://www.oracle.com/technetwork/issue-archive/2005/05-nov/o65asktom-082389.html">On - Transaction Isolation Levels (Oracle)</link></para> - </listitem> - - <listitem> - <para><link - xlink:href="https://technet.microsoft.com/en-us/library/ms378149">Understanding - Isolation Levels (Microsoft)</link></para> - </listitem> - </itemizedlist> - - <section xml:id="accountTransferPessimistic"> - <title>Account Transfer using pessimistic concurrency control</title> - - <qandaset defaultlabel="qanda" xml:id="qandaJdbcIsolation"> - <title>Accounts and balances</title> - - <qandadiv> - <qandaentry> - <question> - <para>Consider the following simple schema of accounts keeping - customer balances:</para> - - <programlisting language="sql">CREATE TABLE Account ( - number INT NOT NULL PRIMARY KEY - ,balance INT NOT NULL - )</programlisting> - - <para>Write two GUI applications to:</para> - - <itemizedlist> - <listitem> - <para>Transfer amounts from one account to another</para> - </listitem> - - <listitem> - <para>Get the sum of all balances</para> - </listitem> - </itemizedlist> - - <informalfigure> - <mediaobject> - <imageobject> - <imagedata fileref="Ref/Screen/accountTransferSum.png"/> - </imageobject> - </mediaobject> - </informalfigure> - </question> - - <answer> - <annotation role="make"> - <para role="eclipse">DbDevel/account</para> - </annotation> - </answer> - </qandaentry> - </qandadiv> - </qandaset> - </section> - - <section xml:id="accountTransferOptimistic"> - <title>Account Transfer using optimistic concurrency control</title> - - <figure xml:id="fig_optimisticConcurrencyControl"> - <title>Optimistic concurrency control</title> - - <mediaobject> - <imageobject> - <imagedata fileref="Ref/Fig/concurrentOptimistic.svg"/> - </imageobject> - </mediaobject> - </figure> - - <para>An interfering transaction obeying the protocol causes a - transaction failure:</para> - - <figure xml:id="concurrentObtimisticFail"> - <title>Failure with optimistic transactions</title> - - <mediaobject> - <imageobject> - <imagedata fileref="Ref/Fig/concurrentOptimisticFail.svg"/> - </imageobject> - </mediaobject> - </figure> - - <para>Considerations:</para> - - <itemizedlist> - <listitem> - <para>Race conditions, time of check to time of use</para> - </listitem> - </itemizedlist> - - <qandaset defaultlabel="qanda" xml:id="qandaTransferOptimistic"> - <title>Optimistic account transfer</title> - - <qandadiv> - <qandaentry> - <question> - <para>Implement your (pessimistic) account transfer - application <xref linkend="qandaJdbcIsolation"/> in an - optimistic manner:</para> - - <itemizedlist> - <listitem> - <para>Make sure both source and destination accounts get - protected against interfering transactions.</para> - </listitem> - - <listitem> - <para>Provide a means to definitely avoid deadlocks during - the second transaction section of a balance transfer - operation.</para> - </listitem> - - <listitem> - <para>Supply a suitable message in case of an interfering - second balance transfer</para> - </listitem> - </itemizedlist> - </question> - </qandaentry> - </qandadiv> - </qandaset> - </section> + <para/> </section> </chapter> -- GitLab