%\documentclass{article}


%\begin{document}

% Diagram

\begin{center} 

\begin{picture}(146,121)(0,-121)
%\put(0,-121){\framebox(146,121){}}
\node[linewidth=0.54,NLangle=0.0,Nw=30,Nh=10,Nmr=1.53](n0)(64.0,-11.94){PCML5 program}

\node[NLangle=0.0,Nmr=1.2,Nw=12,Nh=10](n1)(64.0,-59.94){CPS}

\node[Nframe=n,NLangle=0.0,Nadjustdist=2.7,Nw=26.72,Nh=8.73,Nmr=2.14](n2)(32.0,-48.0){Client}

\node[Nframe=n,NLangle=0.0,Nw=18.26,Nh=8.73,Nmr=2.18](n4)(110.0,-48.0){Server}

\node[dash={3.0 2.0 2.0 2.0}{0.0},Nw=56.89,Nh=71.17,Nmr=0.0](n5)(100,-79.9){}

\node[dash={3.0 2.0 2.0 2.0}{0.0},Nw=37.31,Nh=70.64,Nmr=0.0](n6)(32.81,-79.38){}

\node[NLangle=0.0,Nw=19.31,Nh=8.73,Nmr=2.18](n8)(32.0,-59.94){Javascript}

\node[NLangle=0.0,Nw=19.31,Nh=8.73,Nmr=2.18](n10)(100.0,-59.94){B5}

\node[linewidth=0.54,NLangle=30.96,NLdist=1.54,fillcolor=White,Nw=41.8,Nh=19.05,Nmr=9.53](n12)(61.78,-87.71){Executing program}

\node[linewidth=0.54,NLangle=0.0,Nw=18,Nh=12,Nmr=2.78](n14)(108.0,-108.0){Resource}

\node[NLangle=0.0,Nw=32,Nh=12,Nmr=2.65](n15)(108.0,-84.0){Resource monitor}

\drawedge(n1,n8){}

\drawedge(n1,n10){}

\drawedge[AHdist=2.17,AHangle=16.16,AHLength=3.59,AHlength=2.8](n8,n12){ }

\drawedge[AHdist=1.53,AHangle=14.88,AHLength=3.31,AHlength=2.25](n10,n12){ }

\drawedge[linewidth=1.14,ELside=r,ELdist=3.0,AHangle=41.11,AHLength=3.65,AHlength=2.7,curvedepth=-9.09](n12,n15){request \& proof}

\drawedge(n15,n14){}

\node[Nframe=n,NLangle=0.0,Nw=5.29,Nh=5.29,Nmr=2.65](n11)(64.0,-24.0){type checking}

\node[Nframe=n,NLangle=0.0,Nw=5.29,Nh=4.5,Nmr=2.25](n12)(64.0,-36.0){proof checking}

\node[Nframe=n,NLangle=225.0,NLdist=1.5,Nw=5.82,Nh=4.23,Nmr=2.12](n13)(64.0,-48.0){compilation}

\drawedge(n0,n11){}

\drawedge(n11,n12){}

\drawedge(n12,n13){}

\drawedge(n13,n1){}

\node[NLangle=0.0,Nw=35,Nh=13.23,Nmr=3.31](n16)(124.0,-24.0){Authorization logic}

\drawedge[curvedepth=-5.83](n16,n12){}

\drawedge[curvedepth=6.4](n16,n15){}


\end{picture}


\end{center}
%\end{document}
