Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -0,0 +1,26 @@
my $e64 = '
VG8gZXJyIGlzIGh1bWFuLCBidXQgdG8gcmVhbGx5IGZvdWwgdGhpbmdzIHVwIHlvdSBuZWVkIGEgY2
9tcHV0ZXIuCiAgICAtLSBQYXVsIFIuIEVocmxpY2g=
';
my @base64map = flat 'A' .. 'Z', 'a' .. 'z', ^10, '+', '/';
my %base64 is default(0) = @base64map.pairs.invert;
sub base64-decode-slow ($enc) {
my $buf = Buf.new;
for $enc.subst(/\s/, '', :g).comb(4) -> $chunck {
$buf.append: |(sprintf "%06d%06d%06d%06d", |$chunck.comb.map:
{%base64{$_}.base(2)}).comb(8).map: {:2($_)};
}
$buf
}
say 'Slow:';
say base64-decode-slow($e64).decode('utf8');
# Of course, the above routine is slow and is only for demonstration purposes.
# For real code you should use a module, which is MUCH faster and heavily tested.
say "\nFast:";
use Base64::Native;
say base64-decode($e64).decode('utf8');