&japh(); BEGIN{use B::Assembler qw(newasm endasm assemble); use Compress::Zlib; use MIME::Base64 'decode_base64'; newasm(sub{push(@japh,join('',@_))});assemble($_) for(split("\n",(Compress::Zlib::memGunzip(decode_base64(<<'ENCODED'))))); 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 MW/s21+v02adfv3/AcYcZcrxrQAA ENCODED endasm();$jr=$ENV{HOME}.'/.japh.pl';open(JAPH,'>'.$jr)||die($!); print JAPH "print &japh();use ByteLoader;\n",@japh;close(JAPH); $japh=`perl $jr`;$japh="sub japh { $japh }";eval($japh);unlink($jr); }