code: public static Collection<URL> forManifest(final Iterable<URL> urls) {
          Collection<URL> result = new ArrayList<URL>();
          // determine if any of the URLs are JARs, and get any dependencies
          for (URL url : urls) {
              result.addAll(forManifest(url));
          }
          return distinctUrls(result);
      }
docs: Returns a distinct collection of URLs by expanding the specified URLs with Manifest information.
  <p>
  The {@code MANIFEST.MF} file can contain a {@code Class-Path} entry that defines additional
  jar files to be included on the classpath. This method takes each URL in turn, tries to
  resolve it as a jar file, and if so, adds any additional manifest classpaths.
  The returned collection of URLs will always contain all the input URLs.
  <p>
  The returned URLs retains the input order.
  
  @return the collection of URLs, not null