code: function(Se){// Shortcuts
  var ke=this._data,Ie=ke.words,Ae=ke.sigBytes,we=this.blockSize,Ee=Ae/(4*we);// Count blocks ready
  Ee=Se?se.ceil(Ee):se.max((0|Ee)-this._minBufferSize,0);// Count words ready
  var Pe=Ee*we,Be=se.min(4*Pe,Ae);// Count bytes ready
  // Process blocks
  if(Pe){for(var Re=0;Re<Pe;Re+=we)// Perform concrete-algorithm logic
  this._doProcessBlock(Ie,Re);// Remove processed words
  var Te=Ie.splice(0,Pe);ke.sigBytes-=Be}// Return processed words
  return new ue.init(Te,Be)}
docs: Processes available data blocks.
  
  This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.
  
  @param {boolean} doFlush Whether all blocks and partial blocks should be processed.
  
  @return {WordArray} The processed data.
  
  @example
  
  var processedData = bufferedBlockAlgorithm._process();
  var processedData = bufferedBlockAlgorithm._process(!!'flush');