Base64 — стандарт кодирования двоичных данных при помощи только 64 символов ASCII. Алфавит кодирования содержит латинские символы A-Z, a-z и 0-9 (62 знака) и два дополнительных символа, зависящих от системы реализации. Каждые три исходных байта кодируются четырьмя символами (таким образом, количество байт увеличивается на $$$25\%$$$). В рамках данной задачи дополнительными символами являются + и /.
Для того, чтобы преобразовать данные в base64, первый байт помещается в самые старшие восемь бит 24-битного буфера, следующий — в средние восемь и третий — в младшие значащие восемь бит. Если кодируется менее, чем три байта, то соответствующие биты буфера устанавливаются в ноль. Далее каждые шесть бит буфера, начиная с самых старших, используются как индексы строки ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ (индексация начинается с нуля) и её символы, на которые указывают индексы, помещаются в выходную строку. Если кодируются только один или два байта, в результате получаются только первые два или три символа строки, а выходная строка дополняется двумя или одним символами =. Процесс повторяется над оставшимися входными данными.
В таблице показан результат кодирования строки Cat:

Напишите программу, выполняющую кодирование последовательности байт по стандарту base64.
Первая строка содержит десятичное представление длины кодируемой последовательности (целое число от $$$1$$$ до $$$50\ 000$$$). Вторая строка содержит значения каждого байта этой последовательности, записанные в виде двух шестнадцатеричных цифр (шестнадцатеричные цифры выбираются из строки 0123456789ABCDEF) Эти значения разделяются одиночными пробелами. В начале и в конце строки пробелов нет.
Выведите исходную последовательность, закодированную по стандарту base64.
3 43 61 74
Q2F0
4 0F DD A4 12
D92kEg==
Первый пример соответствует таблице из условия.