code: public static byte[] decode(String s)
    {
  	  ByteArrayOutputStream baos = new ByteArrayOutputStream();
      int len = s.length();
   	  
  	  boolean toggle = false;
  	  int keep = 0;
  
      for (int i = 0; i < len; i++) {
        char ch = s.charAt(i);
   	    int n = ALPHABET.indexOf(Character.toLowerCase(ch));
  	    if (n == -1) {
  		    throw new 
  		      IllegalArgumentException(s+" is not properly encoded");
  	    }
  
   	    toggle = !toggle;
  
   	    if (toggle) {
  		    keep = n;
  	    } else {
  		    baos.write((keep << 4) | n);
   	    }
   	  }
  	  return baos.toByteArray();
    }
docs: <p>
  Decodes.
  </p>
  @param s Modhex encoded
  {@link String}. Decoding ignores case of {@code s}.
  @return Bytes {@code s} represents.
  @throws IllegalArgumentException If {@code s} not valid Modhex.