
Licenses
-----------

This product bundles fonts from Font Awesome Free version 4.2.0, copyright Font Awesome,
 which is available under the SIL OFL 1.1. For details, see licenses/bin/font-awesome.silofl
  * https://fontawesome.com/

This product bundles JavaBeans Activation Framework version 1.2.0, copyright Oracle and/or its affiliates.,
 which is available under the CDDL 1.1. For details, see licenses/bin/javax.activation.CDDL11
  * https://github.com/javaee/activation
  * com.sun.activation:javax.activation

This product bundles Jersey version 1.19.3, copyright Oracle and/or its affiliates.,
 which is available under the CDDL 1.1. For details, see licenses/bin/jersey.CDDL11
  * https://jersey.github.io/
  * com.sun.jersey:jersey-core
  * com.sun.jersey:jersey-server
  * com.sun.jersey:jersey-servlet
  * com.sun.jersey:contribs

This product bundles Expression Language 3.0 API version 3.0.0., copyright Oracle and/or its affiliates.,
 which is available under the CDDL 1.1. For details, see licenses/bin/javax.CDDL11
  * https://github.com/javaee/el-spec
  * javax.el:javax.el-api

This product bundles Java Servlet API version 3.1.0, copyright Oracle and/or its affiliates.,
 which is available under the CDDL 1.1. For details, see licenses/bin/javax.CDDL11
  * https://github.com/javaee/servlet-spec
  * javax.servlet:javax.servlet-api

This product bundles JSR311 API version 1.1.1, copyright Oracle and/or its affiliates.,
 which is available under the CDDL 1.1. For details, see licenses/bin/jsr311-api.CDDL11
  * https://github.com/javaee/jsr311
  * javax.ws.rs:jsr311-api

This product bundles Expression Language 3.0 version 3.0.0., copyright Oracle and/or its affiliates.,
 which is available under the CDDL 1.1. For details, see licenses/bin/javax.CDDL11
  * https://github.com/javaee/el-spec
  * org.glassfish:jakarta.el
  
This product bundles Jersey version 1.9, copyright Oracle and/or its affiliates.,
 which is available under the CDDL 1.1. For details, see licenses/bin/jersey.CDDL11
  * https://jersey.github.io/
  * com.sun.jersey:jersey-client
  * com.sun.jersey:jersey-core

This product bundles JavaBeans Activation Framework version 1.1, copyright Oracle and/or its affiliates.,
 which is available under the CDDL 1.1. For details, see licenses/bin/javaxCDDL11
  * https://github.com/javaee/activation
  * javax.activation:activation

This product bundles Java Servlet API version 2.5, copyright Oracle and/or its affiliates.,
 which is available under the CDDL 1.1. For details, see licenses/bin/javax.CDDL11
  * https://github.com/javaee/servlet-spec
  * javax.servlet:javax.servlet-api

This product bundles JAXB version 2.2.2, copyright Oracle and/or its affiliates.,
 which is available under the CDDL 1.1. For details, see licenses/bin/javax.CDDL11
  * https://github.com/javaee/jaxb-v2
  * javax.xml.bind:jaxb-api

This product bundles stax-api version 1.0-2, copyright Oracle and/or its affiliates.,
 which is available under the CDDL 1.1. For details, see licenses/bin/javax.CDDL11
  * https://github.com/javaee/
  * javax.xml.stream:stax-api

This product bundles jsp-api version 2.1, copyright Oracle and/or its affiliates.,
 which is available under the CDDL 1.1. For details, see licenses/bin/javax.CDDL11
  * https://github.com/javaee/javaee-jsp-api
  * javax.servlet.jsp:jsp-api

This product bundles Jersey version 1.15, copyright Oracle and/or its affiliates.,
 which is available under the CDDL 1.1. For details, see licenses/bin/jersey.CDDL11
  * https://jersey.github.io/
  * com.sun.jersey:jersey-client

This product bundles OkHttp Aether Connector version 0.0.9, copyright to original author or authors,
 which is available under the Eclipse Public License 1.0. For details, see licenses/bin/aether-connector-okhttp.EPL1.
  * https://github.com/takari/aether-connector-okhttp
  * io.tesla.aether:aether-connector-okhttp

This product bundles Tesla Aether version 0.0.5, copyright to original author or authors,
 which is available under the Eclipse Public License 1.0. For details, see licenses/bin/tesla-aether.EPL1.
  * https://github.com/tesla/tesla-aether
  * io.tesla.aether:tesla-aether

This product bundles Eclipse Aether libraries version 0.9.0.M2, copyright Sonatype, Inc.,
 which is available under the Eclipse Public License 1.0. For details, see licenses/bin/aether-core.EPL1.
  * https://github.com/eclipse/aether-core
  * org.eclipse.aether:aether-api
  * org.eclipse.aether:aether-connector-file
  * org.eclipse.aether:aether-impl
  * org.eclipse.aether:aether-spi
  * org.eclipse.aether:aether-util

This product bundles Rhino version 1.7R5, copyright Mozilla and individual contributors.,
 which is available under the Mozilla Public License Version 2.0. For details, see licenses/bin/rhino.MPL2.
  * https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Rhino
  * org.mozilla:rhino
  
This product bundles "Java Concurrency In Practice" Book Annotations, copyright Brian Goetz and Tim Peierls,
 which is available under the Creative Commons Attribution 2.5 license. For details, see licenses/bin/creative-commons-2.5.LICENSE.
  * http://jcip.net/
  * net.jcip:jcip-annotations
