public virtual Object Clone() {
BinaryFormatter bFormatter = new BinaryFormatter();
bFormatter.SurrogateSelector = PUtil.FrameworkSurrogateSelector;
MemoryStream stream = new MemoryStream();
PStream pStream = new PStream(stream);
pStream.WriteObjectTree(bFormatter, this);
return (PNode)pStream.ReadObjectTree(bFormatter);
}
#endregion