anchor.diff:    end;
   end;
   
  -
   function TPCSafeBox.AddNew(const blockChain: TOperationBlock): TBlockAccount;
  +
   var i, base_addr : Integer;
     Pblock : PBlockAccount;
     accs : Array of cardinal;
  
positive.code:     Class Function LoadTOperationBlockFromStream(const stream : TStream; var operationBlock:TOperationBlock) : Boolean;
      Class Function AccountToTxt(const Account : TAccount) : AnsiString;
    End;
  
    {
      Protocol 2:
      Introducing OperationBlock info on the safebox, this will allow checkpointing a safebox because
      each row of the safebox (TBlockAccount) will have data about how to calculate
      its PoW, so next row will use row-1 info to check it's good generated thanks to PoW
  
      This solution does not include operations, but include operations_hash value,
      that is a SHA256 of operations.
  
      If someone wants to change the safebox and spam, will need to find values
      to alter safebox accounts of last checkpoint and also find new blocks prior
      to honest nodes, that will be only accepted by nodes that does not have
      last blocks (only fresh nodes). This is a very hard job and not efficient
      because usually there will be few new fresh nodes per period, so only
      can spam new fresh nodes because old nodes does not need to download
      a checkpointing.
      This solution was created by Herman Schoenfeld (Thanks!)
    }
  
    TBlockAccount = Record
      blockchainInfo : TOperationBlock;
      accounts : Array[0..CT_AccountsPerBlock-1] of TAccount;
      block_hash: TRawBytes;   // Calculated on every block change (on create and on accounts updated)
      accumulatedWork : UInt64; // Accumulated work (previous + target) this value can be calculated.
    end;
  
    TCardinalsArray = Array of Cardinal;
  
  
negative.code:     end;
      // Set saved Safebox values:
      Psnapshot := FSnapshots[iPrevSnapshotTarget];
  
      If TBaseType.BinStrComp(FBufferBlocksHash,Psnapshot^.oldBufferBlocksHash)<>0 then begin
        raise Exception.Create('ERROR DEV 20180322-1 Rollback invalid BufferBlocksHash value');
      end;
  
      FBufferBlocksHash := Psnapshot^.oldBufferBlocksHash;
      FTotalBalance := Psnapshot^.oldTotalBalance;
      FTotalFee := Psnapshot^.oldTotalFee;
  