docs: private static String getIPv6UrlRepresentation(byte[] addressBytes) {
  		// first, convert bytes to 16 bit chunks
  		int[] hextets = new int[8];
  		for (int i = 0; i < hextets.length; i++) {
  			hextets[i] = (addressBytes[2 * i] & 0xFF) << 8 | (addressBytes[2 * i + 1] & 0xFF);
  		}
  
  		// now, find the sequence of zeros that should be compressed
  		int bestRunStart = -1;
  		int bestRunLength = -1;
  		int runStart = -1;
  		for (int i = 0; i < hextets.length + 1; i++) {
  			if (i < hextets.length && hextets[i] == 0) {
  				if (runStart < 0) {
  					runStart = i;
  				}
  			} else if (runStart >= 0) {
  				int runLength = i - runStart;
  				if (runLength > bestRunLength) {
  					bestRunStart = runStart;
  					bestRunLength = runLength;
  				}
  				runStart = -1;
  			}
  		}
  		if (bestRunLength >= 2) {
  			Arrays.fill(hextets, bestRunStart, bestRunStart + bestRunLength, -1);
  		}
  
  		// convert into text form
  		StringBuilder buf = new StringBuilder(40);
  		buf.append('[');
  
  		boolean lastWasNumber = false;
  		for (int i = 0; i < hextets.length; i++) {
  			boolean thisIsNumber = hextets[i] >= 0;
  			if (thisIsNumber) {
  				if (lastWasNumber) {
  					buf.append(':');
  				}
  				buf.append(Integer.toHexString(hextets[i]));
  			} else {
  				if (i == 0 || lastWasNumber) {
  					buf.append("::");
  				}
  			}
  			lastWasNumber = thisIsNumber;
  		}
  		buf.append(']');
  		return buf.toString();
  	}