anchor.diff:  
   
   function Adler32CRC(S: TMemoryStream): Cardinal;
  +const
  +  MAX_PRIME_16BIT = 65521; // 65521 is the largest prime number smaller than 2^16
   var
     I, A, B: Cardinal;
   begin
  
positive.code:   function Equals(A, B: single; const Epsilon: Single = 0.001): Boolean;
  
  function MakePOT(num: Integer): Integer;
  function Adler32CRC(TextPointer: Pointer; TextLength: Cardinal): Cardinal; overload;
  function Adler32CRC(const aPath: string): Cardinal; overload;
  function Adler32CRC(S: TMemoryStream): Cardinal; overload;
  function RandomS(Range_Both_Directions:integer):integer; overload;
  
negative.code: end;
  
  
  function Adler32CRC(aPointer: Pointer; aLength: Cardinal): Cardinal;
  const
    MAX_PRIME_16BIT = 65521; // 65521 is the largest prime number smaller than 2^16
  var
    I, A, B: Cardinal;
  begin
    A := 1;
    B := 0; // A is initialized to 1, B to 0
    for I := 1 to aLength do
    begin
      Inc(A, pByte(Cardinal(aPointer) + I - 1)^);
      Inc(B, A);
    end;
    A := A mod MAX_PRIME_16BIT;
    B := B mod MAX_PRIME_16BIT;
    Adler32CRC := B + A shl 16; // reverse order for smaller numbers
  end;
  
  