#!/usr/bin/perl -n

s/&#x([0-9A-Fa-f]+);/
$h = hex ($1);
$h < 0x80 ?
	$h == 34 ? "&quot;" :
	$h == 38 ? "&amp;" :
	$h == 60 ? "&lt;" :
	$h == 62 ? "&gt;" :
	chr ($h) :
$h < 0x800 ?
	  chr (0xC0 | $h >> 6 & 0x1F)
	. chr (0x80 | $h & 0x3F) :
$h < 0x10000 ?
	  chr (0xE0 | $h >> 12 & 0x0F)
	. chr (0x80 | $h >> 6 & 0x3F)
	. chr (0x80 | $h & 0x3F) :
$&/eg;

print;
