circle "S" big big bold fit rad 110% circlerad = S.rad movewid = S.diameter*0.8 move circle "L" big big bold move circle "O" big big bold move circle "C" big big bold move circle "N1" big big bold move circle "R" big big bold circle "P" big big bold with .n at movewid below L.s circle "N2" big big bold with .e at movewid left of S.w define double_arrow { spline -> from 0.5mm above $1.e \ then to 2mm above 0.5<$1,$2> \ then to 0.5mm above $2.w text $3 small above at 2nd vertex of previous spline <- from 0.5mm below $1.e \ then to 2mm below 0.5<$1,$2> \ then to 0.5mm below $2.w text $4 small below at 2nd vertex of previous } double_arrow(N2,S,"6.00","2.08") double_arrow(S,L,"9.17","2.30") double_arrow(L,O,"2.77","4.03") double_arrow(O,C,"2.64","5.30") double_arrow(C,N1,"2.08","6.40") double_arrow(N1,R,"1.79","3.47") spline -> from 0.5mm right of L.s \ then to 2mm right of 0.5 \ then to 0.5mm right of P.n text "2.64" small ljust at 2nd vertex of previous spline <- from 0.5mm left of L.s \ then to 2mm left of 0.5 \ then to 0.5mm left of P.n text "6.01" small rjust at 2nd vertex of previous define any_down { circle "*" bold rad 0.5*circlerad with .s at movewid above $1.n arrow from previous.s to $1.n $2 small ljust } any_down(N2," 5.52") any_down(S, " 9.47") any_down(L, " 16.40") any_down(O, " 13.87") any_down(C, " 12.56") any_down(N1," 5.52") any_down(R, " 3.56") circle "*" bold rad 0.5*circlerad with .n at movewid below P.s arrow from previous.n to P.s " 7.71" small ljust