function createConcatenatedHash([h1, h2, h3, h4]) {
  const fill = "00000000";
  return (
    (fill + (h1 >>> 0).toString(16)).slice(-8) +
    (fill + (h2 >>> 0).toString(16)).slice(-8) +
    (fill + (h3 >>> 0).toString(16)).slice(-8) +
    (fill + (h4 >>> 0).toString(16)).slice(-8)
  );
}
/**
 * Create concated and filled hash string
 *
 * @private
 * @param {number[]} hash Array containing hash parts as int, represented as tuple of 4
 * @returns {string} Concatenated and filled hash
 */
Create concated and filled hash string
@private
@param {number[]} hash Array containing hash parts as int, represented as tuple of 4
@returns {string} Concatenated and filled hash
Create concated and filled hash string @private @param { number [] } hash Array containing hash parts as int represented as tuple of 4 @returns { string } Concatenated and filled hash
function createConcatenatedHash([h1, h2, h3, h4]) {
  const fill = "00000000";
  return (
    (fill + (h1 >>> 0).toString(16)).slice(-8) +
    (fill + (h2 >>> 0).toString(16)).slice(-8) +
    (fill + (h3 >>> 0).toString(16)).slice(-8) +
    (fill + (h4 >>> 0).toString(16)).slice(-8)
  );
}
function createConcatenatedHash ( [ h1 , h2 , h3 , h4 ] ) { const fill = "00000000" ; return ( ( fill + ( h1 >>> 0 ) . toString ( 16 ) ) . slice ( - 8 ) + ( fill + ( h2 >>> 0 ) . toString ( 16 ) ) . slice ( - 8 ) + ( fill + ( h3 >>> 0 ) . toString ( 16 ) ) . slice ( - 8 ) + ( fill + ( h4 >>> 0 ) . toString ( 16 ) ) . slice ( - 8 ) ) ; }
Create concated and filled hash string
 @private
 @param {number[]} hash Array containing hash parts as int, represented as tuple of 4
 @returns {string} Concatenated and filled hash
Create concated and filled hash string @private @param { number [] } hash Array containing hash parts as int represented as tuple of 4 @returns { string } Concatenated and filled hash