+use Compress::Raw::Lzma;
+
+our %UNCOMPRESS = (
+ '' => sub { $_[0] },
+ 'lzma2' => sub {
+ my ($input) = @_;
+ my ($lzma2, $code, $output);
+ ($lzma2, $code) = Compress::Raw::Lzma::RawDecoder->new(Filter => Lzma::Filter::Lzma2());
+ die "Error creating LZMA2 decoder: $code\n" unless $code == LZMA_OK;
+ $code = $lzma2->code($input, $output);
+ die "Did not reach end of stream" if $code == LZMA_OK;
+ die "Error decoding LZMA2: $code" if $code != LZMA_STREAM_END;
+ $output
+ }
+);
+