code: private static String key2Str_impl(Key k) {
      // check if we are system key
      StringBuilder sb = new StringBuilder(k._kb.length / 2 + 4);
      int i = 0;
      if( k._kb[0] < 32 ) {
        // System keys: hexalate all the leading non-ascii bytes
        sb.append('%');
        int j = k._kb.length - 1;     // Backwards scan for 1st non-ascii
        while( j >= 0 && k._kb[j] >= 32 && k._kb[j] < 128 )
          j--;
        for( ; i <= j; i++ ) {
          byte b = k._kb[i];
          int nib0 = ((b >>> 4) & 15) + '0';
          if( nib0 > '9' ) nib0 += 'A' - 10 - '0';
          int nib1 = ((b >>> 0) & 15) + '0';
          if( nib1 > '9' ) nib1 += 'A' - 10 - '0';
          sb.append((char) nib0).append((char) nib1);
        }
        sb.append('%');
      }
      // Escape the special bytes from 'i' to the end
      return escapeBytes(k._kb, i, sb).toString();
    }
docs: Convert a Key to a suitable filename string