var I=y.removeCells;y.removeCells=function(H,S){S=null!=S?S:!0;null==H&&(H=this.getDeletableCells(this.getSelectionCells()));S&&(H=this.getDeletableCells(this.addAllEdges(H)));for(var V=[],M=0;M<H.length;M++){var W=H[M];A.isEdge(W)&&n(W)&&(V.push(W),W=A.getTerminal(W,!1));if(c(W)){var U=[];y.traverse(W,!0,function(X,u){var E=null!=u&&y.isTreeEdge(u);E&&U.push(u);(null==u||E)&&U.push(X);return null==u||E});0<U.length&&(V=V.concat(U),W=y.getIncomingTreeEdges(H[M]),H=H.concat(W))}else null!=W&&V.push(H[M])}H=
V;return I.apply(this,arguments)};x.hoverIcons.getStateAt=function(H,S,V){return c(H.cell)?null:this.graph.view.getState(this.graph.getCellAt(S,V))};var O=y.duplicateCells;y.duplicateCells=function(H,S){H=null!=H?H:this.getSelectionCells();for(var V=H.slice(0),M=0;M<V.length;M++){var W=y.view.getState(V[M]);if(null!=W&&c(W.cell)){var U=y.getIncomingTreeEdges(W.cell);for(W=0;W<U.length;W++)mxUtils.remove(U[W],H)}}this.model.beginUpdate();try{var X=O.call(this,H,S);if(X.length==H.length)for(M=0;M<H.length;M++)if(c(H[M])){var u=
The software does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.