( ( 2XML = PCDATAentities attributeValueEntities doAll doAttributes , xml . ( attributeValueEntities = a c . @( !arg : ?a (("<"|"&"|\"):?c) ?arg ) & !a "&" ( !c:"<"< | !c:"&"& | quot ) ";" attributeValueEntities$!arg | !arg ) & ( PCDATAentities = a c . @( !arg : ?a (("<"|"&"|">"):?c) ?arg ) & !a "&" ( !c:"<"< | !c:"&"& | gt ) ";" PCDATAentities$!arg | !arg ) & ( doAttributes = a v . !arg:(?a.?v) ?arg & " " PCDATAentities$!a "=\"" attributeValueEntities$!v \" doAttributes$!arg | ) & ( doAll = xml first A B C att XML . !arg:?xml & :?XML & whl ' ( !xml:%?first ?xml & ( !first:(?A.?B) & ( !B:(?att,?C) & !XML ( !C: & "<" !A doAttributes$!att " />\n" | "<" !A doAttributes$!att ">" doAll$!C "\n" ) : ?XML | !A : ( "!"&!XML "":?XML | "!--" & !XML "":?XML | "?"&!XML "\n":?XML | "![CDATA[" & !XML "":?XML | "!DOCTYPE" & !XML "":?XML | ? & !XML "<" !A doAttributes$!B ">":?XML ) ) | !XML PCDATAentities$!first:?XML ) ) & str$!XML ) & doAll$!arg ) & ( makeList = characters name names remark remarks . !arg:(?names.?remarks) & :?characters & whl ' ( (!names.!remarks) : (%?name ?names.%?remark ?remarks) & !characters (Character.(name.!name),!remark) : ?characters ) & ("?".xml) (CharacterRemarks.,!characters) ) & put $ ( 2XML $ ( makeList $ ( April "Tam O'Shanter" Emily . "Bubbly: I'm > Tam and <= Emily" "Burns: \"When chapman billies leave the street ...\"" "Short & shrift" ) ) ) )