anchor.diff:    props: CLzmaEncProps;
     header: array[0..LZMA_PROPS_SIZE + 7] of Byte;
     headerSize: size_t;
  -  i: Integer;
     inStreamRec: CSeqInStream;
     outStreamRec: CSeqOutStream;
   begin
  
positive.code: procedure LzDecode(inStream, outStream: TStream);
  var
    UncompressedSize: Int64;
    i: Integer;
    // header: 5 bytes of LZMA properties and 8 bytes of uncompressed size
    header: array [0..LZMA_PROPS_SIZE + 7] of Byte;
  begin
    // Read and parse header
    inStream.ReadBuffer(header, SizeOf(Header));
  
    UncompressedSize := 0;
    for i := 0 to 7 do
      Inc(UncompressedSize, Int64(header[LZMA_PROPS_SIZE + i] shl (i * 8)));
  
    LzmaDecode(@header[0], LZMA_PROPS_SIZE, inStream, outStream, UncompressedSize);
  end;
  
negative.code:   end;
  end;
  
  initialization
    {The LZMA routines are multithreaded and use the Delphi memory manager.}
    IsMultiThread := True;
  
  end.
  