Кодировать строку для иностранцев, которые читают и пишут по-английски, но не знают ASCII

12

Оказывается, есть некоторые далекие иностранцы, которые знают английский (и по совпадению стандартизировали на 8-битных компьютерных архитектурах) . Тем не менее, они никогда не слышали ни о ASCII, ни даже в алфавитном порядке.

Считается, что эти инопланетяне собирают информацию с Земли. Тем не менее, они делают это с цифровым оборудованием, которое считывает бессмысленную информацию, когда передача не отправляется ... таким образом, сигнал должен содержаться таким образом, чтобы он выделялся на фоне окружающего шума.

Был создан новый стандарт, смоделированный после того, как Сообщение Аресибо использует длину полупростого сигнала:

Универсальное семиотическое кодирование для обмена информацией (USCII)

(См .: http://uscii.hostilefork.com )

В USCII каждый код получен из растрового изображения, представляющего символ, который имеет простую ширину и простую высоту. Например, это 5x7 представление буквы A:

01110
10001
10001
10001
11111
10001
10001

Это производит 35 бит. Тем не менее, чтобы даже односимвольные сообщения выделялись из шума и выглядели согласованно, строки встроены в контейнерный формат, который помогает усилить основные факторы. Контейнер был выбран, чтобы упростить манипулирование строками в архитектурах, которые работают с кратными 8 битам.

С его контейнером, «А» выше будет выглядеть так:

0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
0111010001100011000111111100011000100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111100000
1111111111111111111111111111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111111111

Символы сообщения сначала имеют префикс с пятью сплошными растровыми изображениями 5x7, а в конце добавляются семь сплошных растровых изображений 5x7. ( «Метр» .) Затем каждый из них имеет пять битов, прикрепленных к концу, чтобы получить четные 40 битов.

Наконец, к началу добавлено 7 40-разрядных циклов со всеми нулями, а к концу добавлено 5 40-разрядных циклов со всеми нулями. ( «Молчание» .)

Ваша миссия

Вы должны написать кодировщик. Ввод - это обычная строка ASCII, набранная с клавиатуры. Используемые вами растровые изображения взяты из шрифта CPU 5x7 PIC .

(Примечание: здесь достаточно просто извлечь шрифт со страницы для всех талантливых игроков в код, но если вы хотите, чтобы эти байты были вместе, то они здесь .)

Вывод должен быть напечатанной строкой в ​​шестнадцатеричном формате.

Примеры

Вход :

ABCDEFG

Выход :

0000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE074631FC620F463E8C7C074610845C0E4A318CB80FC21E843E0FC21E84200746178C5E0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Вход :

Dear aliens: Please get me off of this planet!!!

Выход :

0000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0E4A318CB80001D1FC1E0001C17C5E0002D9842000000000000001C17C5E061084211C00100421080001D1FC1E0002D98C620001F0707C003180630000000000000F463E8420061084211C0001D1FC1E0001C17C5E0001F0707C0001D1FC1E00000000000001F1787C0001D1FC1E0213E421440000000000000375AD620001D1FC1E00000000000001D18C5C01148E210801148E210800000000000001D18C5C01148E210800000000000213E4214408421E8C6200100421080001F0707C00000000000003D1F420061084211C0001C17C5E0002D98C620001D1FC1E0213E421440210840008021084000802108400080FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Разъяснения

Условия выигрыша

0000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE074610845C0001D18C5C00842F8C5E0001D1FC1E00000000000746178C5E0001D18C5C061084211C01148E21080210840008021084000802108400080FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

HostileFork говорит, что не доверяйте SE
источник
По моему мнению, инопланетяне, вероятно, думают, что мы сумасшедшие из-за того, что посылаем им такие вещи.
Кайл Канос,
7
@KyleKanos Если инопланетяне умны, они подумают, что это круто. Вывод о том, что человечество сумасшедшее, произойдет вскоре после того, как кто-то затем использует формат для передачи им информации из глобальных новостных агентств.
HostileFork говорит, что не доверяйте SE
Последняя строка не отформатирована. Не могли бы вы отформатировать ее, как другие строки ввода и вывода?
AL
@ n.1 Не правильно ли он отображается в вашем браузере? Это выглядит хорошо по моему. Рад изменить его, если есть техническая проблема, но, поскольку он описывает условие победы, технически это «использование», а не «упоминание» в различении упоминаний об использовании , поэтому я на самом деле специально использовал его в стиле основного текста. :-)
HostileFork говорит, что не доверяйте SE
@Dr. Ребму: в моем браузере на рабочем столе все в порядке, но с приложением для Android вопрос слишком широкий: meta.stackexchange.com/q/231512/237701
AL

Ответы:

3

Python 2, 671 +669 663 байта

D=str.decode
d=D(D("eJxNUmsSHiEIuxIgvn76sXr/IzVB26kzqyxCCBGRt0xlOM5RbXp6qv32Omu6lT22nTGiOVe05muMFXM11ZuuynwV52f8E7W11+SdzGMvTl6GHvm3ig6RRBbp3nqNqGEFeACK7m5YZYPAMMGV6qyk4ydKKD3FTPeAcQZhUAw4lh4aR8YcWaaVV480lDTJF64thyT4T+8tCjVofOtLnKInAAYDyJ0e9lxj+wJk/MYJ0nBQvYaRhnbQQEIrB5t1fX2VwdMnZF1zLF/Gf2H62PtXGYwypU5msXo2mNUvclE+QXqY3sNkg3GcKReKRTPrGnizNNCOw+tenSWaLQZf6VC926UYVw7I0y/eDEOo/LfKvvLdEQjt7NTzLXrkI2MmNrMPRYDng4a6VR0ThTKMgUA9XlYzTIsk+XtCH+y2mk1rf6VD4V7Xh2Cxb2YWkdkprlDCTR6yv5jnQSuQScEb0CBu5WXZ1ScN6gMDvWa73HNoy845VMg7wLBlA9wwhAMTiNn6ravFH00dtSc=","base64"),"zip")
i=raw_input()
m="F"*8+"E0"
o="0"*70+m*5
for c in i:x=ord(c)*9-288;o+=d[x:x+9]+"0"
print o+m*7+"F"*50

PHP с zlib, +738 716 715 байт

<?php $d=gzinflate(base64_decode("TVJrEh4hCLsSIL5++rF6/yM1QdupM6ssQggRkbdMZTjOUW16eqr99jprupU9tp0xojlXtOZrjBVzNdWbrsp8Fedn/BO1tdfkncxjL05ehh75t4oOkUQW6d56jahhBXgAiu5uWGWDwDDBleqspOMnSig9xUz3gHEGYVAMOJYeGkfGHFmmlVePNJQ0yReuLYck+E/vLQo1aHzrS5yiJwAGA8idHvZcY/sCZPzGCdJwUL2GkYZ20EBCKwebdX19lcHTJ2Rdcyxfxn9h+tj7VxmMMqVOZrF6NpjVL3JRPkF6mN7DZINxnCkXikUz6xp4szTQjsPrXp0lmi0GX+lQvdulGFcOyNMv3gxDqPy3yr7y3REI7ezU8y165CNjJjazD0WA54OGulUdE4UyjIFAPV5WM0yLJPl7Qh/stppNa3+lQ+Fe14dgsW9mFpHZKa5Qwk0esr+Y50ErkEnBG9AgbuVl2dUnDeoDA71mu9xzaMvOOVTIO8CwZQPcMIQDE4jZ+q2rxR8="));$i=trim(fgets(STDIN));$f="str_repeat";echo $f(0,70).$f($m="FFFFFFFFE0",5);foreach(str_split($i)as$c)echo substr($d,ord($c)*9-288,9)."0";echo $f($m,7).$f("F",50);

Во-первых, ваш PHP должен быть настроен с --with-zlib. И запустить этот скрипт из командной строки, как php 26972.php. Эта программа принимает данные от STDIN.

(Если short_open_tag=Onя могу сохранить еще 3 байта.)

Ungolfed

<?php
$data = gzinflate(base64_decode("TVJrEh4hCLsSIL5++rF6/yM1QdupM6ssQggRkbdMZTjOUW16eqr99jprupU9tp0xojlXtOZrjBVzNdWbrsp8Fedn/BO1tdfkncxjL05ehh75t4oOkUQW6d56jahhBXgAiu5uWGWDwDDBleqspOMnSig9xUz3gHEGYVAMOJYeGkfGHFmmlVePNJQ0yReuLYck+E/vLQo1aHzrS5yiJwAGA8idHvZcY/sCZPzGCdJwUL2GkYZ20EBCKwebdX19lcHTJ2Rdcyxfxn9h+tj7VxmMMqVOZrF6NpjVL3JRPkF6mN7DZINxnCkXikUz6xp4szTQjsPrXp0lmi0GX+lQvdulGFcOyNMv3gxDqPy3yr7y3REI7ezU8y165CNjJjazD0WA54OGulUdE4UyjIFAPV5WM0yLJPl7Qh/stppNa3+lQ+Fe14dgsW9mFpHZKa5Qwk0esr+Y50ErkEnBG9AgbuVl2dUnDeoDA71mu9xzaMvOOVTIO8CwZQPcMIQDE4jZ+q2rxR8="));
$input = trim(fgets(STDIN));
$f = "str_repeat";

echo $f(0, 70).$f($m = "FFFFFFFFE0", 5);
foreach(str_split($input) as $c)
    echo substr($data, ord($c) * 9 - 288, 9)."0";
echo $f($m, 7).$f("F", 50);
Легкая закуска
источник
+1 за идею использования только 9 шестнадцатеричных цифр в сжатых данных.
user2846289
До сих пор 716 - лучший результат ... хотя я представляю, что это можно сделать за меньшее! Я сделаю это немного позже, но если никто не сравнится, я закончу давать вам ... по крайней мере, у вас есть версия Python, а не PHP. :-)
HostileFork говорит, что не доверяйте SE
Хорошо, 663 и не в PHP - даже лучше. :-) Щедрость твоя!
HostileFork говорит, что не доверяйте SE
2

С

Это на самом деле печатает читаемый человеком гекс (против двоичного для читабельности). Все представлено в виде длинных без знака, и используются только 9-10 шестнадцатеричных цифр из-за (в зависимости от того, используете ли вы заполнение 00000) неудачного формата 6x5 (шрифт 8x4 был бы слишком простым)

#include <stdio.h>
#define u unsigned long long
void p(int n, u x){while(n--) printf("%09llX",x);}
int main(void){
char *s="ABCDEFG";
u a[128]={0xAAAAAAAAAULL,0xADEB7ADEAULL,0xDFF7FDFF6ULL,0xDEF7BDFF6ULL,0xFFFFFFCE6ULL,0xFF41DB82EULL,0xFD7FF747EULL,0xDC63107F6ULL,0xFEEE0BEFEULL,0x0003D0800ULL,0xE1084FB88ULL,0x21084201CULL,0xFB880FB88ULL,0x084ADFB08ULL,0x25F7BDF78ULL,0xE777BDDC8ULL,0xFFC8E27FEULL,0xFDE719DFEULL,0xDED4A73A2ULL,0xFD6B5AD7EULL,0xFC6318C7EULL,0xFD7FF8BBEULL,0xFFFFFFABEULL,0xF81CA703EULL,0x881445022ULL,0xFC58A347EULL,0x8BBDDDFF6ULL,0x1995E73A2ULL,0xAD6B5AD6AULL,0xDEF7BDEF6ULL,0xF7B5204F6ULL,0xFFFFF9EEEULL,0x000000000ULL,0x210840008ULL,0x529400000ULL,0x52BEAFA94ULL,0x23E8E2F88ULL,0xC644444C6ULL,0x64A88AC9AULL,0x611000000ULL,0x111084104ULL,0x410421110ULL,0x012AEA900ULL,0x0109F2100ULL,0x000006110ULL,0x0001F0000ULL,0x000000318ULL,0x004444400ULL,0x74675CC5CULL,0x23084211CULL,0x74422223EULL,0xF88820C5CULL,0x11952F884ULL,0xFC3C10C5CULL,0x3221E8C5CULL,0xF84444210ULL,0x7462E8C5CULL,0x7462F0898ULL,0x031806300ULL,0x031806110ULL,0x111104104ULL,0x003E0F800ULL,0x410411110ULL,0x744222008ULL,0x7442DAD5CULL,0x74631FC62ULL,0xF463E8C7CULL,0x74610845CULL,0xE4A318CB8ULL,0xFC21E843EULL,0xFC21E8420ULL,0x746178C5EULL,0x8C63F8C62ULL,0x71084211CULL,0x388421498ULL,0x8CA98A4A2ULL,0x84210843EULL,0x8EEB58C62ULL,0x8C7359C62ULL,0x746318C5CULL,0xF463E8420ULL,0x74631AC9AULL,0xF463EA4A2ULL,0x7C20E087CULL,0xF90842108ULL,0x8C6318C5CULL,0x8C6318A88ULL,0x8C631AD54ULL,0x8C5445462ULL,0x8C62A2108ULL,0xF8444443EULL,0x72108421CULL,0x000000000ULL,0x70842109CULL,0x22A200000ULL,0x00000003EULL,0x410400000ULL,0x001C17C5EULL,0x8421E8C7CULL,0x001F0841EULL,0x0842F8C5EULL,0x001D1FC1EULL,0x1148E2108ULL,0x001F1787CULL,0x8421E8C62ULL,0x010042108ULL,0x100421498ULL,0x4212A6292ULL,0x61084211CULL,0x00375AD62ULL,0x002D98C62ULL,0x001D18C5CULL,0x003D1F420ULL,0x001F17842ULL,0x002D98420ULL,0x001F0707CULL,0x213E42144ULL,0x002318C5CULL,0x002318A88ULL,0x00231AD54ULL,0x0022A22A2ULL,0x0022A2110ULL,0x003E2223EULL,0x190882106ULL,0x210802108ULL,0xC10822130ULL,0x0BA000000ULL,0xFE2A2AE3EULL};
p(7,0ULL);
p(5,0xFFFFFFFE0ULL);
while(*s)p(1,a[*s++]);
p(7,0xFFFFFFFE0ULL);
p(5,0xFFFFFFFFFULL);
return 0;
}

удар

#!/bin/sh 
p(){
i=0
while ([ $i -lt $1 ]) do
printf $2
i=$((i+1))
done
}

t(){
#Given string input $1, go char by char & create "alien" representation 

C='~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !"#$%&~)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'
A="AAAAAAAAA0ADEB7ADEA0DFF7FDFF60DEF7BDFF60FFFFFFCE60FF41DB82E0FD7FF747E0DC63107F60FEEE0BEFE00003D08000E1084FB88021084201C0FB880FB880084ADFB08025F7BDF780E777BDDC80FFC8E27FE0FDE719DFE0DED4A73A20FD6B5AD7E0FC6318C7E0FD7FF8BBE0FFFFFFABE0F81CA703E08814450220FC58A347E08BBDDDFF601995E73A20AD6B5AD6A0DEF7BDEF60F7B5204F60FFFFF9EEE000000000002108400080529400000052BEAFA94023E8E2F880C644444C6064A88AC9A0611000000011108410404104211100012AEA90000109F2100000000611000001F000000000003180004444400074675CC5C023084211C074422223E0F88820C5C011952F8840FC3C10C5C03221E8C5C0F8444421007462E8C5C07462F08980031806300003180611001111041040003E0F8000410411110074422200807442DAD5C074631FC620F463E8C7C074610845C0E4A318CB80FC21E843E0FC21E84200746178C5E08C63F8C62071084211C038842149808CA98A4A2084210843E08EEB58C6208C7359C620746318C5C0F463E8420074631AC9A0F463EA4A207C20E087C0F9084210808C6318C5C08C6318A8808C631AD5408C544546208C62A21080F8444443E072108421C0000000000070842109C022A200000000000003E04104000000001C17C5E08421E8C7C0001F0841E00842F8C5E0001D1FC1E01148E21080001F1787C08421E8C620010042108010042149804212A6292061084211C000375AD620002D98C620001D18C5C0003D1F4200001F178420002D984200001F0707C0213E421440002318C5C0002318A88000231AD5400022A22A200022A21100003E2223E019088210602108021080C1082213000BA0000000FE2A2AE3E0"

j=0 
p 7 0000000000
p 5 FFFFFFFFE0
while ([ "${j}" -lt "${#1}" ]) do 
   i=${C%${1:$j:1}*}
   i=${#i}
   printf ${A:$(( $i*10 )):10} 
   j=$(($j+1)) 
done 
p 7 FFFFFFFFE0
p 5 FFFFFFFFFF
}
t "Dear aliens: Please get me off of this planet!!!"
technosaurus
источник
@ Dr.Rebmu Потребовалось больше времени, чем я ожидал, чтобы получить «шрифт» в работоспособном формате. Я планировал опубликовать свой другой в ближайшее время, но это заняло больше конверсий и форматирования, чем ожидалось.
технозавр
1
+1 за соответствие спецификации! Но в гольфе есть много возможностей. Зачем вводить новый счетчик в процедуру p, если n изменчиво? Зачем повторять фразу «unsigned long long» дважды, когда #define может сократить это? Стоит ли платить за 0x и ULL в таблице с шестнадцатеричным кодированием, где вы получаете только 4 бита на символ в самих цифрах? И т.д.
HostileFork говорит, что не доверяйте SE
@ Dr.Rebmu исправил дополнительный счетчик (недосмотр), и я планировал использовать макрос для 0x##number##ULL(см. Версию bash для альтернативы char), но ideone.com подумал, что это был вызов функции, поэтому я отменил его (gcc был в порядке) ... Я мог бы удалить (пустоту) из основного тоже, но некоторые вещи просто кажутся неправильными.
технозавр
В кодовом гольфе единственное «неправильно» - это если он не работает или не соответствует спецификациям… будучи «правильным» - это меньше символов ! Если вы собираетесь использовать подход, описанный здесь, в вашей C-программе, я бы определенно сказал, что вы можете уменьшить количество символов, используя шестнадцатеричные строки вместо того, чтобы возиться с длинным без знака (особенно если вам не нужны целочисленные значения). кроме преобразования их обратно в строки, что добавляет код ...)
HostileFork говорит, что не доверяйте SE
Пожалуйста, добавьте количество байтов к названию. Кроме того, вы должны больше проигрывать свой код.
user12205
2

PHP, 874 байта

Вам нужно будет запустить этот скрипт из командной строки ( php uscii.php), потому что он принимает ввод из стандартного ввода.

<?php $f=base64_decode(str_replace('@','AA','@@@QhC@RSl@AClfV9SiPo4viYyIiJjZKiKyawi@@REIQQSCCEIiAEq6p@IT5C@@GEQ@Pg@@@xgAiIiAHRnXMXEYQhCOdEIiI/8RBBi4RlS+IX4eCGLjIh6MXfCIiEIdGLoxc6MXhEwDGAYwAGMAwiBERBBBAB8HwAQQQREQ6IREAR0QtrVzoxj+MfRj6MfOjCEIu5KMYy5+EPQh/8IehCDowvGL4xj+MYuIQhCOOIQhSZGVMUlGEIQhD8d1rGMYxzWcYujGMYu9GPoQg6MY1k30Y+pKL4QcEPvkIQhCRjGMYujGMYqJGMY1qqMVEVGMYxUQhPhEREPuQhCEOBBBBBA4QhCE4iog@@@AH0EE@@A4L4vhCHox8AD4Qg8IQvjF4AOj+DxFI4hC@+Lw+hCHoxiAgCEIQQBCFJiEJUxSWEIQhHAButaxAC2YxiADoxi4APR9C@Pi8IQAtmEI@+Dg+IT5CFEAEYxi4AIxiogARjWqgAioiogBFRCIAD4iI+MhEEIMhCAIQmCEEQmAug@@='));$a=trim(fgets(STDIN));$r='str_repeat';echo$r('0',70).$r($q='FFFFFFFFE0',5);foreach(str_split($a)as$c){$v=(ord($c)-32)*35;$x=$v>>3;$y=1<<(7-$v%8);$b=0;for($i=0;$i<40;$i++){$b+=$b+($i<35&&ord($f[$x])&$y);if(($i&7)==7)$b=!printf('%02X',$b);if(!($y>>=1)&&$x++)$y=128;}}echo$r($q,7).$r('F',50);

Ungolfed:

<?php

// Font bitmap data rearranged as 95 consecutive 35-bit strings and padded
// out to 416 bytes with zeros:
$f=base64_decode(str_replace('@','AA',
    '@@@QhC@RSl@AClfV9SiPo4viYyIiJjZKiKyawi@@REIQQSCCEIiAEq6p@IT5C@@GEQ@Pg'.
    '@@@xgAiIiAHRnXMXEYQhCOdEIiI/8RBBi4RlS+IX4eCGLjIh6MXfCIiEIdGLoxc6MXhEw'.
    'DGAYwAGMAwiBERBBBAB8HwAQQQREQ6IREAR0QtrVzoxj+MfRj6MfOjCEIu5KMYy5+EPQh'.
    '/8IehCDowvGL4xj+MYuIQhCOOIQhSZGVMUlGEIQhD8d1rGMYxzWcYujGMYu9GPoQg6MY1'.
    'k30Y+pKL4QcEPvkIQhCRjGMYujGMYqJGMY1qqMVEVGMYxUQhPhEREPuQhCEOBBBBBA4Qh'.
    'CE4iog@@@AH0EE@@A4L4vhCHox8AD4Qg8IQvjF4AOj+DxFI4hC@+Lw+hCHoxiAgCEIQQB'.
    'CFJiEJUxSWEIQhHAButaxAC2YxiADoxi4APR9C@Pi8IQAtmEI@+Dg+IT5CFEAEYxi4AIx'.
    'iogARjWqgAioiogBFRCIAD4iI+MhEEIMhCAIQmCEEQmAug@@='));

// Fetch input:
$a=trim(fgets(STDIN));

// Header:
$r='str_repeat';
echo $r('0',70).$r($q='FFFFFFFFE0',5);

// Convert each input character into its corresponding hex sequence:
foreach (str_split($a) as $c) {
  $v=(ord($c)-32)*35;
  $x=$v>>3;
  $y=1<<(7-$v%8);
  $b=0;
  for ($i=0;$i<40;$i++) {
    // When $i>34, pad with zeros
    $b += $b + ($i<35 && ord($f[$x]) & $y);
    if (($i&7)==7) $b=!printf('%02X',$b); // print out $b and set $b=0
    // Shift mask to next bit position
    if (!($y>>=1)&&$x++) $y=128;
  }
}

// Tail:
echo $r($q,7).$r('F',50);
r3mainer
источник
+1 (хотя я надеюсь, что никто не отправляет PHP инопланетянам !!)
HostileFork говорит, что не доверяйте SE
2

JavaScript ES6 (838 байт)

_="z='00000';r=(n,m)=>m.repean);fop=prompi=o=';i<p.length;)o+=parseInatob('RSlClfV9SiPo4viYyIiJjZKiKyawiRQQSCCEq6pGEQPgxgAiIHRnXMXEYOdiI/8Ri4RlS+IX4eCGLjIhXfCIidGLcXhEwDGAYwAGMAwiBERBAB8HwAQQQREQ6IREAR0QtrVzj+MfRjfOjCu5KMYy5+EP/8IeDowvGL4xj+MYuIOOISZGVMUlGD8d1rxzWcYuju9GPoQgY1k30Y+pKL4QcEPvkIRjujqJ1qqMVEVxUPhEREPuEOBA4E4H0EEA4L4vH8AD4Qg8IQvjF4AOj+DxFI4+Lw+HgCQQBCFJiEJUxSWHAButaxAC2YxDi4APR9CPi8IQAtm+Dg+FEAEYxi4AIxARjWqgAioBFRCIAD4iI+MhEMAIQmCEEQmAugRV8nyE.split   p(e=>e028)).join    tch(/.{35}/g)[pi++)-32]+z,21610);14,z5,y='E0+o.toUpperCase(7,y5,10,'F)A.charCodeAQhGMY).toString(EI)).slice(-)+ ('.maC')hCoxiog(z+z+t(r(iABB6MFFAIT5C";for(Y in $=" ")with(_.split($[Y]))_=join(pop());eval(_)

Не раздавлен :

z='00000';r=(n,m)=>m.repeat(n);for(p=prompt(i=o='');i<p.length;)o+=(z+z+parseInt(atob('AAAAAAQhCAARSlAAAClfV9SiPo4viYyIiJjZKiKyawiAAAAREIQQSCCEIiAEq6pAAIT5CAAAAGEQAAPgAAAAAAxgAiIiAHRnXMXEYQhCOdEIiI/8RBBi4RlS+IX4eCGLjIh6MXfCIiEIdGLoxc6MXhEwDGAYwAGMAwiBERBBBAB8HwAQQQREQ6IREAR0QtrVzoxj+MfRj6MfOjCEIu5KMYy5+EPQh/8IehCDowvGL4xj+MYuIQhCOOIQhSZGVMUlGEIQhD8d1rGMYxzWcYujGMYu9GPoQg6MY1k30Y+pKL4QcEPvkIQhCRjGMYujGMYqJGMY1qqMVEVGMYxUQhPhEREPuQhCEOBBBBBA4QhCE4iogAAAAAAAH0EEAAAAA4L4vhCHox8AD4Qg8IQvjF4AOj+DxFI4hCAA+Lw+hCHoxiAgCEIQQBCFJiEJUxSWEIQhHAButaxAC2YxiADoxi4APR9CAAPi8IQAtmEIAA+Dg+IT5CFEAEYxi4AIxiogARjWqgAioiogBFRCIAD4iI+MhEEIMhCAIQmCEEQmAugAAARV8nyE').split('').map(e=>(z+z+e.charCodeAt(0).toString(2)).slice(-8)).join('').match(/.{35}/g)[p.charCodeAt(i++)-32]+z,2).toString(16)).slice(-10);r(14,z)+r(5,y='FFFFFFFFE0')+o.toUpperCase()+r(7,y)+r(5,r(10,'F'))
Майкл М.
источник
+1, но кроме неразбитой версии, полезно видеть ее в удобочитаемом формате без горизонтальной прокрутки ...
HostileFork говорит, что не доверяйте SE