#!/usr/bin/perl -n

sub bajt ($)
{
	my ($a) = @_;

	$a < 040 || $a == 0177 ?
		sprintf "\\%o", $a
	:
	$a == ord "\\" || $a == ord "#" ?
		"\\" . chr ($a)
	:
	chr ($a);
}

sub utf8 ($)
{
	my ($b) = @_;

	$b < 0x20 || $b == 0x7F ?
		sprintf "\\x%02X", $b
	:
	$b == ord "\\" || $b == ord "#" ?
		"\\" . chr ($b)
	:
	$b < 0x80 ?
		chr ($b)
	:
	$b < 0x800 ?
		chr (0xC0 | $b >> 6 & 0x1F) .
		chr (0x80 | $b & 0x3F)
	:
		chr (0xE0 | $b >> 12 & 0x0F) .
		chr (0x80 | $b >> 6 & 0x3F) .
		chr (0x80 | $b & 0x3F),
}

if (/^\s*0x([0-9A-Fa-f]{2})\s+0x([0-9A-Fa-f]{4})/)
{
	print "\t", bajt hex $1, "\t", utf8 hex $2, "\n"
	unless hex $1 == hex $2 && hex $1 < 0x80;
}
elsif (/^\s*0x([0-9A-Fa-f]{2})\s+0x([0-9A-Fa-f]{2})\s+0x([0-9A-Fa-f]{4})/)
{
	print "\t", bajt hex $1, bajt hex $2, "\t", utf8 hex $3, "\n";
}
elsif (/^\s*(\S+)\s+0x([0-9A-Fa-f]+)/)
{
	print "\t$1\t", utf8 hex $2, "\n";
}
