s <- "{J{A{P{A{N{}}},M{A{I{C{A{}}}}},V{A{}}},O{R{D{A{N{}}}}}}}"
s <- chartr("{},", "<>;", s)
repeat {
s1 <- s
s <- gsub("<([^;<>]*)>", "\\1", s)
repeat {
s2 <- s
s <- gsub("<([^<>]*);([^<>]*)>", "<\\1,\\2>", s)
if (s == s2) break
}
s <- gsub("<([^<>]*)\\,([^<>]*)>", "\\{\\1,\\2\\}", s)
if (s == s1) break
}
cat(s, "\n")
cyA8LSAie0p7QXtQe0F7Tnt9fX0sTXtBe0l7Q3tBe319fX19LFZ7QXt9fX0sT3tSe0R7QXtOe319fX19fX0iCnMgPC0gY2hhcnRyKCJ7fSwiLCAiPD47IiwgcykKCnJlcGVhdCB7IAogICAgczEgPC0gcwogICAgcyA8LSBnc3ViKCI8KFteOzw+XSopPiIsICJcXDEiLCBzKQogICAgcmVwZWF0IHsKICAgICAgICBzMiA8LSBzCiAgICAgICAgcyA8LSBnc3ViKCI8KFtePD5dKik7KFtePD5dKik+IiwgIjxcXDEsXFwyPiIsIHMpCiAgICAgICAgaWYgKHMgPT0gczIpIGJyZWFrCiAgICB9CiAgICBzIDwtIGdzdWIoIjwoW148Pl0qKVxcLChbXjw+XSopPiIsICJcXHtcXDEsXFwyXFx9IiwgcykKICAgIGlmIChzID09IHMxKSBicmVhawp9CmNhdChzLCAiXG4iKQ==