code: private ConnectionSpec supportedSpec(SSLSocket sslSocket, boolean isFallback) {
      String[] cipherSuitesToEnable = null;
      if (cipherSuites != null) {
        String[] cipherSuitesToSelectFrom = sslSocket.getEnabledCipherSuites();
        cipherSuitesToEnable =
            Util.intersect(String.class, cipherSuites, cipherSuitesToSelectFrom);
      }
  
      if (isFallback) {
        // In accordance with https://tools.ietf.org/html/draft-ietf-tls-downgrade-scsv-00
        // the SCSV cipher is added to signal that a protocol fallback has taken place.
        final String fallbackScsv = "TLS_FALLBACK_SCSV";
        boolean socketSupportsFallbackScsv =
            Arrays.asList(sslSocket.getSupportedCipherSuites()).contains(fallbackScsv);
  
        if (socketSupportsFallbackScsv) {
          // Add the SCSV cipher to the set of enabled cipher suites iff it is supported.
          String[] oldEnabledCipherSuites = cipherSuitesToEnable != null
              ? cipherSuitesToEnable
              : sslSocket.getEnabledCipherSuites();
          String[] newEnabledCipherSuites = new String[oldEnabledCipherSuites.length + 1];
          System.arraycopy(oldEnabledCipherSuites, 0,
              newEnabledCipherSuites, 0, oldEnabledCipherSuites.length);
          newEnabledCipherSuites[newEnabledCipherSuites.length - 1] = fallbackScsv;
          cipherSuitesToEnable = newEnabledCipherSuites;
        }
      }
  
      String[] protocolsToSelectFrom = sslSocket.getEnabledProtocols();
      String[] protocolsToEnable = Util.intersect(String.class, tlsVersions, protocolsToSelectFrom);
      return new Builder(this)
          .cipherSuites(cipherSuitesToEnable)
          .tlsVersions(protocolsToEnable)
          .build();
    }
docs: Returns a copy of this that omits cipher suites and TLS versions not enabled by
  {@code sslSocket}.