p&&r--}else{q=(a+c)/2;u=(b+d)/2;var v=(c+e)/2,w=(d+f)/2;e=(e+g)/2;f=(f+h)/2;d=(q+v)/2;c=(u+w)/2;v=(v+e)/2;w=(w+f)/2;var z=(d+v)/2,y=(c+w)/2;r+=L.$p(a,b,q,u,d,c,z,y,k,l,m,n,p);r+=L.$p(z,y,v,w,e,f,g,h,k,l,m,n,p)}return r},Eh:function(a,b,c,d,e,f,g){if(L.aa(a,c)){b g&&(f=-f),f=(0>c?-1:1)*f+a,h=p*(f-a)+b),this.ce(d),this.pf(f,h),this.ce(e);else{this.ce(d);this.ce(e);h=N.alloc();b.Mi(h);k=h.$(e);p.Mi(h);l=h.$(d);if(k||l)g=b.da(mp(g),new J),this.Mc(0,this.getLinkPointFromPoint(a,b,g,e,!0,g)),c=p.da(mp(c),new J),this.Mc(1,this.getLinkPointFromPoint(f,p,c,d,!1,c));N.free(h)}}else{n=this.isAvoiding;p&&(m&&n||l)&&this.ak();var y=l?this.computeCurviness():0;n=this.getLinkPoint(a,b,g,!0,m,d,e);r=u=q=0;if(m||!h||l)v=this.computeEndSegmentLength(a,b,g,!0),r=this.getLinkDirection(a,
b,n,g,!0,m,d,e),l&&(h||g.A(c)||!m&&1===g.x+c.x&&1===g.y+c.y)&&(r-=m?90:30,0>y&&(r-=180)),0>r?r+=360:360<=r&&(r-=360),l&&(v+=Math.abs(y)*(m?1:2)),0===r?q=v:90===r?u=v:180===r?q=-v:270===r?u=-v:(q=v*Math.cos(r*Math.PI/180),u=v*Math.sin(r*Math.PI/180)),g.wc()&&l&&(v=b.da(yc,J.alloc()),w=J.allocAt(v.x+1E3*q,v.y+1E3*u),this.getLinkPointFromPoint(a,b,v,w,!0,n),J.free(v),J.free(w));v=this.getLinkPoint(d,e,c,!1,m,a,b);var A=z=w=0;if(m||!k||l){var B=this.computeEndSegmentLength(d,e,c,!1);A=this.getLinkDirection(d,
e,v,c,!1,m,a,b);l&&(k||g.A(c)||!m&&1===g.x+c.x&&1===g.y+c.y)&&(A+=m?0:30,0>y&&(A+=180));0>A?A+=360:360<=A&&(A-=360);l&&(B+=Math.abs(y)*(m?1:2));0===A?w=B:90===A?z=B:180===A?w=-B:270===A?z=-B:(w=B*Math.cos(A*Math.PI/180),z=B*Math.sin(A*Math.PI/180));c.wc()&&l&&(c=e.da(yc,J.alloc()),g=J.allocAt(c.x+1E3*w,c.y+1E3*z),this.getLinkPointFromPoint(d,e,c,g,!1,v),J.free(c),J.free(g))}c=n;if(m||!h||l)c=new J(n.x+q,n.y+u);g=v;if(m||!k||l)g=new J(v.x+w,v.y+z);!p&&!m&&h&&3O+1&&(r=Math.max((y-O)*e+a.ua,r)),n+1O+1&&(b=a.position.x*e));if(a.io)switch(a.Au){case "negative":b=-(l.scrollWidth-b-l.clientWidth);break;case "reverse":b=l.scrollWidth-b-l.clientWidth}l.scrollLeft=b;a.hasVerticalScrollbar&&a.allowVerticalScroll&&(F+1B+1&&(l.scrollTop=a.position.y*e));u=a.ua;v=a.ta;l.style.width=u+(a.Of?a.sb:0)+"px";l.style.height=v+(a.Ue?a.sb:0)+"px";return c!==u||d!==v||a.animationManager.rb?(c=N.allocAt(f,g,h,k),a.onViewportBoundsChanged(c,a.viewportBounds,e,p),N.free(c),!1):!0}t=T.prototype;
t.add=function(a){var b=a.diagram;if(b!==this&&(null!==b&&C("Cannot add part "+a.toString()+" to "+this.toString()+". It is already a part of "+b.toString()),b=this.ik(a.layerName),null===b&&(b=this.ik("")),null===b&&C('Cannot add a Part when unable find a Layer named "'+a.layerName+'" and there is no default Layer'),a.layer!==b)){var c=b.Oi(99999999,a,a.diagram===this);0<=c&&this.Va(ee,"parts",b,null,a,null,c);b.isTemporary||this.Pa();a.B(1);c=a.layerChanged;null!==c&&c(a,null,b)}};
t.Oi=function(a){this.partManager.Oi(a);var b=this;zj(a,function(a){Aj(b,a)});(a instanceof we||a instanceof hf&&null!==a.placeholder)&&a.s();null!==a.data&&zj(a,function(a){Bj(b.partManager,a)});!0!==nj(a)&&!0!==oj(a)||this.qe.add(a);Cj(a,!0,this);Dj(a)?(a.actualBounds.u()&&this.N(xj(a,a.actualBounds)),this.Pa()):a.isVisible()&&a.actualBounds.u()&&this.N(xj(a,a.actualBounds));this.Fb()};
t.bc=function(a){a.$j();this.partManager.bc(a);var b=this;null!==a.data&&zj(a,function(a){Ej(b.partManager,a,b)});this.qe.remove(a);Dj(a)?(a.actualBounds.u()&&this.N(xj(a,a.actualBounds)),this.Pa()):a.isVisible()&&a.actualBounds.u()&&this.N(xj(a,a.actualBounds));this.Fb()};t.remove=function(a){Fj(this,a,!0)};
function Fj(a,b,c){var d=b.layer;null!==d&&d.diagram===a&&(b.isSelected=!1,b.isHighlighted=!1,b.B(2),c&&b.fk(),c=d.bc(-1,b,!1),0<=c&&a.Va(fe,"parts",d,b,null,c,null),a=b.layerChanged,null!==a&&a(b,d,null))}t.bt=function(a,b){void 0===b&&(b=!1);if(Aa(a))for(var c=a.length,d=0;dw*w)for(null===v.Di&&(lo(v,4,k,l,c),lo(v,16,k,l,c)),k=v.Di,l=k.length,q=0;q