merged from trunk

svn path=/branches/proto/v4/libs/algorithm/; revision=49607